Dúvida
Melhorar performance na contabilização no módulo de compras.
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras - Todas as versões
Solução
Para melhorar a performance na contabilização off line do módulo de compras ( rotina CTBANFE ), podemos observar alguns fatores listados abaixo:
1-) O parâmetro MV_CNFETHR habilita a contabilização Off-Line utilizando Múltiplas Threads para acelerar o processamento.
*Thread é um pequeno programa que trabalha como um subsistema independente de um programa maior, executando alguma tarefa específica. Um programa dividido em várias threads é processado mais rapidamente do que um programa monolítico, pois várias tarefas podem ser executadas simultaneamente, compartilhando os recursos do sistema.
Importante :
- O numero máximo de threads para o parâmetro MV_CNFETHR e 30, porem recomendamos testes com valores menores para acompanhar o ganho de performance;
- Pergunta (Mostra Lançamento Contábil?) deve estar configurada com o conteúdo igual a "NÃO";
- Pergunta (Aglutina Lançamentos?) deve estar configurada com o conteúdo igual a "NÃO";
- O parâmetro MV_PRELAN deve esta configurado com o conteúdo igual a "D"
Ao executar a rotina de processamento "Contabilização Off-Line - CTBANFE" para contabilizar os movimentos o campo F1_DTLANC SEMPRE será atualizado com sua data de processamento, mesmo que não seja gerado lançamento contábil na tabela CT2. Esse procedimento é utilizado para evitar reprocessamento indevidos de movimentos já avaliados pela rotina.
Se optar pelo uso de múltiplas threads pra melhoria de performance, não poderá trabalhar com uso schedule para contabilização. A rotina de contabilização via faturamento, CTBANFE, só funciona via schedule, caso ela não esteja configurada para utilizar múltiplas threads.
Isso ocorre pois as threads do Schedule (SIGACFG) são diferenciadas das Threads dos módulos do sistema. Então via Schedule, é considerado Threads do Agent e não de parâmetros dos demais módulos.
Dúvidas na configuração das Threads do Agent (Configurador), contate a Equipe Framework.
2-) O parâmetro MV_OPTNFE muda o comportamento de processamento da rotina CTBANFE, pois na montagem da massa de dados para processamento ao invés de ler registro-a-registro a rotina monta uma query (Select) no banco de dados recuperando todos os registros a serem processados (CURSOR).
Em testes em clientes verificamos um ganho de aproximadamente 30% no processamento da rotina.
Importante: Com a mudança do parâmetro é necessária uma revisão geral das LP's.
Passo-a-passo
1. Alterar o parâmetro MV_OPTNFE para o conteúdo igual a .T. (Verdadeiro);
2. Realizar uma revisão das LP's abaixo trocando o alias das tabelas pelo nome do cursos "CTBANFE":
Lista de LP's disponíveis na rotina CTBANFE
Exemplo da troca do alias das tabelas:
- No exemplo vou utilizar o principal lançamento padrão da rotina CTBANFE ( 650 )
- No modo PADRÃO (MV_OPTNFE = .F.) quando incluímos as LP's informamos nos campos macro-executados o apelido das tabelas utilizadas, por exemplo " SD1-> "
- No modo performático (MV_OPTNFE = .T.) devemos obrigatoriamente ajustar as LP's alterando os campos macro-executados para o novo apelido " CTBANFE "
Você pode utilizar este mecanismo de performance em conjunto com o parâmetro MV_CNFETHR (Múltiplas Threads);Se os Lançamentos Padrões Offline foram definidos para tratar o apelido “CTBANFE" os mesmos não poderão ser utilizados em um processo de contabilização Online.
3-) PERÍODO CONTABILIZADO :
Contabilização por Período / Documento / Dia, qual o mais performático?
Na parametrização da contabilização off-line da Nota Fiscal de Saída temos três tipos de parametrização “Por Documento”, “Por período” e “Por Dia”.
Identificamos que o tipo “Por Documento” e “Por Dia” utilizam muito acesso a disco do CTREE/ADS que pode gerar uma pequena queda na performance.
Recomendamos a utilização da opção “Por Período” que possui maior desempenho no processamento de grandes volumes de contabilização.
Saíba Mais :
- Como habilitar e gerar o LogProfiler para avaliação de desempenho (trace para rotinas ADVPL)
- O parâmetro MV_CTBCATH é amplamente utilizado para otimizar as rotinas de contabilidade
- Criação de campos adicional na tabela CT5 para que seja replicado o conteúdo nas tabelas CT2 e CTK
- PÁGINA CENTRALIZADORA COMPRAS
- Artigos Materiais - Compras (SIGACOM)
0 Comentários