01. DADOS GERAIS
Produto: | TOTVS Backoffice |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice |
Módulo: | TOTVS Backoffice (Linha Protheus) - Automação Fiscal |
Função: | TAFROTINAS.PRW TAFDINAMICJOB.PRW |
País: | Brasil |
Ticket: | Não há. |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERTAF1-31603 |
02. SITUAÇÃO/REQUISITO
Cliente TOTVS Protheus que utiliza o Módulo 84 - Automação Fiscal para envio de informações trabalhistas, previdenciárias e tributárias ao Ambiente Nacional Virtual de apuração de tributos e da contribuição para o FGTS (eSocial) relata instabilidades no sistema TAF.
A instabilidade mencionada consiste, segundo o cliente, em eventos adversos de picos de utilização nas instâncias de banco de dados relacionadas ao TAF, consumindo recursos do SGBD a ponto do servidor recusar novas conexões, sendo necessário o extermínio da thread dentro do SGBD e reinício dos serviços.
Vale ressaltar que esse caso ocorreu APENAS em cliente com banco Oracle.
03. SOLUÇÃO
Via arquivos de profile e análise de logs, verificados pontos de melhorias na construção e execução da query da rotina getFil4RET, presente no objeto TAFDINAMICJOB.
Com o uso de ferramentas de benchmark e aferição de desempenho, a construção e execução da query foi refatorada buscando as melhores práticas do ganho de performance.
Também foi verificado através de ferramenta de otimização de performance da Oracle, o SQL Tunning, ganhos reais de performance com a criação de índices contendo os campos FILIAL, STATUS e ATIVO, os quais também foram implementados, o que torna obrigatória a execução de compatibilizador de dicionário de dados (UPDDISTR).
Também foi utilizado recurso específico de bancos Oracle para ganho de performance com a instrução ao otimizador dos índices mais performáticos para cada tabela do script SQL.
As fontes de artigos e sites usados tanto no estudo quanto na implementação da solução seguem relacionados nas próximas seções.
04. DEMAIS INFORMAÇÕES
Boa parte da solução consiste na criação/edição de índices nas tabelas usadas pelo TAFDINAMICJOB de tal modo a garantir mais desempenho. Portanto a execução do compabilizador UPDDISTR torna-se obrigatória para plena efetividade da solução proposta.
É obrigatória a execução do compatibilizador UPDDISTR para a criação dos índices de performanceIMPORTANTE!
05. ASSUNTOS RELACIONADOS
- Spike com Detalhamento da proposta de solução: Otimização query presente no TAFDINAMICJOB no Oracle
- Executor de Instruções SQL FWExecStatement: https://tdn.totvs.com.br/display/public/framework/FWExecStatement