Ocorrência
A rotina de Recálculo do Custo Médio (MATA330) está apresentando lentidão ao ser executada. O que fazer para resolver este problema?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.
Solução
A lentidão na rotina de Recálculo de Custo Médio pode ocorrer por diversos motivos. Desta forma, listaremos abaixo motivos comuns que geram a lentidão e como resolvê-los.
1. Identificar se as rotinas e as procedures estão atualizadas.
Através do botão SHIFT + F6 dentro da rotina de Recálculo do Custo Médio é possível avaliar a data do fonte. E, em seguida, comparar com a data do fonte disponível no portal de suporte. Para facilitar a localização, segue abaixo o link dos artefatos do Custo Médio, dentre eles o link da Stored Procedure e Fonte:
https://tdn.totvs.com/pages/releaseview.action?pageId=340361781
Já para visualizar se a Procedure está ou não atualizada, basta acessar ao Configurador (SIGACFG) -> Base de Dados -> Dicionário -> Stored Procedure. Ao abrir, selecione a operação "Consulta" e clique em OK.
Na coluna "Status" será possível visualizar se a Stored Procedure está OK, Desinstalada ou Desatualizada.
OBS: Em caso de atualização da rotina e Stored Procedure, é necessário que a rotina MATA320 e a Procedure 20 também sejam atualizadas.
2. É necessário que o LIB, Binários e DBAcess estejam com a última atualização do portal:
3. É necessário verificar o arquivo DBAPI.DLL se estão com a mesma data de modificação nos diretórios AppServer e DBAcess.
Para analisar, é preciso ter acesso às pasta do AppServer e DBAcess. Localize o arquivo "dbapi.dll" e analise as datas de modificação. Elas precisam estar iguais.
Caso tenha alguma dúvida referente ao compartilhamento do arquivo, clique aqui.
4. Verificar o compartilhamento das tabelas do módulo Contábil.
Outro fator que pode impactar é o compartilhamento das tabelas do módulo Contábil. Se elas não estiverem com o mesma configuração, pode apresentar lentidão. Clique aqui e veja como fazer o compartilhamento.
5. Verificar os parâmetros de Multi Thread, onde auxiliam no processamento e ganho de performance:
MV_M330THR:
Quantidade Threads para execução da rotina.
Define o numero de threads que serão utilizadas na rotina de recalculo do custo médio (informar os números de 1 a 30 threads).
IMPORTANTE: Ao aumentar o numero de threads o administrador de infraestrutura deverá verificar durante a execução da rotina se a quantidade de threads está de acordo com a capacidade de seu ambiente.
MV_M330JCM:
Define se utiliza threads no processamento dos movimentos de ordem 100/300/500 na rotina de custo médio (MATA330).
MV_THRSEQ = .F.
Informa se na geração do arquivo TRB da rotina de recalculo do custo médio será utilizado o controle de Jobs por .T. = Sequencial ou .F. = Paralelo.
IMPORTANTE: Para melhor performance o parâmetro deve estar configurado com .F. = Paralelo.
6. Avaliar o parâmetro MV_A330GRV para processar ou não o Recálculo de produtos obsoletos
- MV_A330GRV = .T (True/Verdadeiro): com este conteúdo (padrão) todos os produtos e armazéns terão seus saldos iniciais recálculos independentes de serem ou não obsoletos. Este é o processo utilizado.
- MV_A330GRV = .F.(False/ Falso): com este novo conceito somente os produtos e armazéns que possuem movimentação de estoque dentro do período de processamento e que possuem quantidades e custos diferentes de zero, terão seus saldos iniciais recalculados. Os produtos que não se enquadram nesta regra (obsoletos) não são recalculados pela rotina.
7. Utilizar (opcional) a ferramenta MALLOC-IO (onde aloca a memoria para ganho de performance):
Para obter mais informações sobre o programa e como utilizar, clique aqui.
8. Ativar a chave DBPulse no DbAcess (Caso tenha ambiente Cloud). Veja detalhes de como ativar clicando aqui
9. Caso o problema de lentidão persista, mesmo com os passos acima já revisado, segue as ações para avaliação (Serve tanto para cliente Cloud quanto cliente com ambiente Standard):
a. Solicitar o apoio de um DBA para acompanhar a execução da rotina e verificar os possíveis pontos de manutenção no data-base para otimizar o processamento.
b. Habilitar o mecanismo de LogProfiler para gerar uma auditoria dos tempos de processamento. Deve ser criada a chave ConsoleMaxsize com 100000 no appserver.ini, vide ConsoleMaxSize -- 29343, reduzindo o risco do logprofiler ficar incompleto. Para saber como habilitar e gerar o LogProfiler veja a documentação disponibilizada no link http://tdn.totvs.com/pages/viewpage.action?pageId=243638663
IMPORTANTE: Não acionar por <SHIFT>+<F6>, pois sua apresentação envolve somente a thread corrente. A rotina faz uso de varias threads que serão apresentadas somente no console.log/console.bak, sendo acionado através da chave LogProfiler=1 inserido no appserver.ini
c. Após a geração do LogProfiler realizar a abertura de um novo ticket para equipe de Suporte Técnico atraves do portal do cliente ( www.suporte.totvs.com.br ), anexando os seguintes itens:
- Uma evidencia em vídeo com todas as configurações utilizadas em seu ambiente
- Arquivo de console.log
- Arquivo de console.bak
- Arquivo de error.log
- Arquivo de dbaccess.log
- Arquivo de dbconsole.log
- Uma cópia completa da tabela CV8, de preferencia no formato CTREE(.DTC)
Saiba mais:
Dicas para melhor performance no Recálculo do Custo Médio
MP - SIGAEST - Rotina MATA330 - Perguntas do Recálculo do Custo Médio
0 Comentários