01. DADOS GERAIS
Produto: | TOTVS Agro Multicultivo
|
---|---|
Linha de Produto: | Linha PIMS |
Segmento: | Agroindústria |
Módulo: | Custos Agrícola |
Função: | Processamentos > Processamento Custos > Processamento Custo |
Ticket: | 9305226 |
Requisito/Story/Issue (informe o requisito relacionado) : | DAGROCUSTOS-1643 |
02. SITUAÇÃO/REQUISITO
Lentidão na execução do Processamento de Custo consumindo aproximadamente 19 horas e 30 minutos para sua execução.
03. SOLUÇÃO
Após verificação da performance, identificou-se que o problema estava concentrado no passo 29, onde são processados os Custos dos Produtos Matéria-Prima e Produções Beneficiados/Acabados. Notou-se que do tempo total de aproximadamente 19h30m tal passo estava consumindo 16h 07m do tempo total de processamento para um determinado mês.
Verificou-se que continha uma instrução SQL onde era utilizada a função de Banco de Dados LPAD. Esta função é específica para Banco de Dados Oracle. Porém, quando utilizado o Banco de Dados SQLServer existem funções (FUNCTION), que ao identificar a presença do LPAD na query, efetua a conversão para a função nativa do SQLServer (função: RIGHT). E esta conversão estava ocasionando a falta de performance no Processamento.
Sendo assim, alterou-se o código-fonte do produto para que seja verificado qual banco de dados está sendo utilizado para montar a query com as funções nativas de cada banco. Ou seja, para Oracle utiliza-se LPAD e para SQLServer utiliza-se RIGHT sem a necessidade de conversão de funções quando utilizado o banco de dados SQLServer.
Com isso, obteve-se os resultados a seguir:
Passo | Mês/Ano Processado | Tempo anterior (hh:mm:ss) | Após alteração (hh:mm:ss) | ||
1ª execução | 2ª execução | ||||
29 | Executando Processamento do Custo dos Produtos Matéria-Prima e Produções Beneficiados/Acabados | jan/20 | 16:07:06 | 00:04:00 | 00:02:56 |
04. ASSUNTOS RELACIONADOS
- Documento de Referência: Processamento de Custo_CSTP0016