Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||
---|---|---|---|---|---|
Linha de Produto: |
| ||||
Segmento: |
| ||||
Módulo: |
| ||||
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 clausula 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
A solução foi substituir o acesso direto utilizando as funções do framework FWSX3Util() e GetSx3Cache() em conjunto.
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á.
Templatedocumentos |
---|