Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Serviços

Módulo:

TOTVS Backoffice (Linha Protheus) - Fiscal (SIGAFIS)

Função:MATA926.prw
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DSERFIS1-29536


02. SITUAÇÃO/REQUISITO

Situação 1: Query com Order By

De acordo com o levantamento realizado, temos mapeadas algumas queries com o uso da cláusula ORDER BY, na qual precisa analisar se está ocorrendo déficit de performance.


Situação 2: Query com Select *

No fonte tem um ponto na qual executa um comando de query com o uso do " SELECT * " , onde pode ocasionar perda de performance.

Essa query é executado sempre que alguma de tabela de complemento é acionada.


Situação 3: Débito Sonarqube com relação ao acesso direto ao SX3

Ao executar o Sonarqube foi identificado que a tabela SX3 estava sendo acessada diretamente, ocorrendo a seguinte mensagem:

Abaixo um dos pontos no fonte com a evidência do uso de acesso direto ao SX3:

Situação 4: Débito Sonarqube com relação ao acesso direto ao SX5.

Ao executar o Sonarqube foi identificado que a tabela SX5 estava sendo acessada diretamente, ocorrendo a seguinte mensagem:

Abaixo um dos pontos no fonte com a evidência do uso de acesso direto ao SX5:


Situação 5: Débito Sonarqube com relação ao Acesso direto ao SX6.

Ao executar o Sonarqube foi identificado que a tabela SX6 estava sendo acessada diretamente, ocorrendo a seguinte mensagem:

Abaixo um dos pontos no fonte com a evidência do uso de acesso direto ao SX6:

03. SOLUÇÃO

Situação 1 - Order BY

Foi analisado no plano de execução do SQL a questão do uso da clausula "ORDER BY" nas queries mapeadas e não foi necessário a retirada da clausula, pois as queries estavam sendo ordenadas por um índice já existente na tabela.

Situação 2 - Select *

Foi criado um laço FOR para ler os campos existentes no dicionário SX3 de acordo com o conteúdo passado no parâmetro cTabela. Após o mapeamento dos campos, o conteúdo foi armazenado em uma variavél cSelect para no fim ser aproveitada na montagem da query.

Situação 3 - Acesso direto ao dicionário SX3

Nesse caso não houve solução pois a função FWSX3Util() não atende a todos os atributos necessários, exemplo o campo X3_VALID ou X3_F3.

Situação 4 - Acesso direto ao dicionário SX5

A solução foi substituir o acesso direto utilizando as funções do framework FWGetSx5().

Situação 5 - Acesso direto ao dicionário SX6

Nesse caso não houve solução pois não foi encontrada uma função eficiente para tratar a questão.

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS

  • Não há.