Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

3. SOLUÇÕES ADICIONAIS PARA MELHORA DE PERFORMANCE

3.1. Uso de changeQuery

Sugestão no uso do parser ChangeQuery antes de instanciar uma área de trabalho pro script SQL. Além de realizar limpeza de espaços vazios desnecessários presentes na query, também realiza pequenas adequações para cada banco de dados buscando otimização de desempenho. Ex.: segundo documentação, remove expressões NOLOCK ou (NOLOCK) e pros antigos bancos DB2 acrescenta a expressão "FOR READ ONLY".


Image Added

3.2. Ajuste da chave TAF_CFGJOB no appserver.ini 

Configurações dos jobs presentes no arquivo de configuração appserver.ini influenciam diretamente o consumo dos serviços REST, principalmente o job TAF_CFGJOB.

Foram realizados testes de desempenho atentando para as propriedades Instances e PrepareIn da chave TAF_CFGJOB com sucesso.

Solicitamos via interação no ticket #15283606 e contato com o suporte a SYS_COMPANY (antiga SM0), a tabela C1E e o appserver.ini do cliente para verificar se estão dispondo da melhor configuração de threads e jobs segundo suas empresas e filiais cadastradas, contudo ainda não obtivemos retorno para prosseguir com análise.


4. EVIDÊNCIAS DE PERFORMANCE E BASE DE DADOS

4.1. DATABASE UTILIZADO

Image Added

4.2. Log Profilers

Image Added


View file
nameBENCHMARK_LOGPROFILER.7z
height250



5. AVALIAR FUTURAMENTE IMPACTO DE REUTILIZAÇÃO DO CHANGEQUERY NO WSTAFST2

...


No Objeto WSTAFST2, interno à rotina TAFLastRcN, existe uma chamada a função ChangeQuery, porém, comentada. 

No changeset de subida do fonte WSTAFST2 no TFS a função já encontrava-se comentada.

Seria interessante futuramente avaliar a reutilização da função, uma vez que esta visa melhor adaptar ao script SQL informado de forma a escrever a query mais adequada de acordo com o banco utilizado pelo cliente.

Image Added


6. ISSUE x SPIKE

6.1. Verificar qual é a rotina que originou a query enviada pelo cliente

TAFDINAMICJOB.PRW

6.2. Criar um ambiente/banco para verificar se a proposta relatada pelo cliente de fato gera um ganho de recursos/performance

Vide seção 4.

6.3. Documentar quais tabelas necessitam da criação do índice proposto

6.3.1. Tabelas mencionadas pelo SQL TUNING: 

C91, T3P, T72, T1S, CUO, T3A, T1U, T1V, CM0, C8B, CM9, CMF, CMD, T92, CMJ

6.3.2. Tabelas utilizadas no TAFDINAMICJOB: 

C91, T3P, T72, T1S, CUO, T3A, T1U, T1V, CM0, C8B, CM9, CMF, CMD, T92, CMJ, C8W, T62, CMR, T1M, T2A, T3V, T72, T1S, T3Z, V73, V75, V76, V77, V78

6.4. Documentar se há necessidade alteração da rotina

Depende.

Com a inclusão dos índices que contenham os campos _FILIAL, _STATUS e _ATIVO já foi suficiente pra otimizar o desempenho sem custo adicional.

Com a implementação do Hint de Index também gerou ganhou, porém ao custo de um pequeno processamento de coleta dos índices que otimizariam a query.


7. LINKS ÚTEIS

...

7.1.

...

Documentações Protheus

TCQUERY: https://tdn.totvs.com/display/tec/Comando+TCQUERY

...

EMBEDDED SQL https://tdn.totvs.com/display/public/framework/Embedded+SQL

...

WEB SERVICE REST - INTEGRAÇÃO: Web Service REST - Integração

7.2. Log Profiler View

LOG PROFILER VIEW: https://arte.engpro.totvs.com.br/framework/logprofile/builds/3.0.1/win/

...

7.3. Artefatos Oracle Database

SQL DEVELOPER:  https://www.oracle.com/database/sqldeveloper/technologies/download/

...