Árvore de páginas

Versões comparadas

Chave

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

...

 

(ideia) Importante: O processamento com multiplas threads somente e possivel para cliente que utilização a contabilidade NÃO AGLUTINA ou

Produto:

Microsiga Protheus®

Versões:

SIGAFAT - Faturamento (P11.80 e P12)

Ocorrência:

Baixa performance na rotina de contabilização off-line do documento de saída (CTBANFS)

Conhecimento:

MÉTODO 1 → Contabilização Off-Line utilizando Múltiplas Threads para acelerar o processamento (MV_CNFSTHR)


SEM utilizar o parâmetro MV_CNFSTHR

Neste exemplo e utilizado um conjunto de 100 notas de saída para processamento da contabilização, veja abaixo que o processo padrão executa nota-a-nota não utilizando de forma exponencial todo percentual de processamento dos servidores.

 Image Modified

 

COM utilização do parâmetro MV_CNFSTHR

Neste exemplo e utilizado um conjunto de 100 notas de saída para processamento da contabilização e ativamos o parâmetro MV_CNFSTHR = 3, veja que o tempo de processamento e reduzido devido a execução em paralelo das notas de saída.

Image Modified

*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.


(aviso) Observações

    • 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"

      Image Added

    • O parâmetro MV_PRELAN deve esta configurado com o conteúdo igual a "D"

 

Image AddedImage Added



 


MÉTODO 2 → Contabilização Off-Line utilizando o parâmetro (MV_OPTNFS)

Esta parametrização muda o comportamento de processamento da rotina CTBANFS, 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 e necessária uma revisão geral das LP's

Passo-a-passo

A. Alterar o parâmetro MV_OPTNFS para o conteúdo igual a .T. (Verdadeiro)

Image Modified

 

B. Realizar uma revisão das LP's abaixo trocando o alias das tabelas pelo nome do cursos "CTBANFS"

 

Lista de LP's disponíveis na rotina CTBANFS

Lanc. PadrãoDescrição
610Documento de Saída - Inclusão de Documento Itens                                                                        
611Rateio (Tabela SDE) - Devolução de Compras
612Pedido de Venda - Inclusão de Documento Itens                                                                           
613Documento de Saída - Inclusão de Documento Rateio Itens                                                                 
620Documento de Saída - Inclusão de Documento Total                                                                        
621Pedido de Venda - Inclusão de Documento Total                                                                           
631Permite a contabilização pela SL4 (Itens de Venda por Forma de Pagamento)
678Documento de Saída - Custo de Mercadoria Vendida                                                                        

 

Exemplo da troca do alias das tabelas:

No exemplo vou utilizar o principal lançamento padrão da rotina CTBANFS (610)

Image Modified


No modo PADRÃO (MV_OPTNFS = .F.) quando incluímos as LP's informamos nos campos macro-executados o apelido das tabelas utilizadas, no exemplo abaixo "SD2->"

Image Modified


No modo PERFORMÁTICO (MV_OPTNFS = .T.) devemos obrigatoriamente ajustar as LP's alterando os campos macro-executados para o novo apelido "CTBANFS"

Image Modified


(estrela vermelha) Importante: Deve-se obrigatoriamente ajustar o apelido de todos os campos macro-executados das abas Valores, Histórico e Outros para as tabelas SC5, SC6, SB1, SA1, SA2, SF2, SD2 e SF4

(ideia) Observação: Você pode utilizar este mecanismo de performance em conjunto com as múltiplas threads.


MÉTODO 3 →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.

          Image Modified


MÉTODO 4 →Revisão nas sequencias de contabilização

Um fator que diminui a performance da rotina CTBANFS e a alta quantidade de "Sequencias (CT5_SEQUEN)" para um mesmo lançamento padrão, por isso recomendamos que a quantidade não ultrapasse 10 sequencias.

Image Modified

 

Pode lhe interessar: