...
Melhorar a
...
performance da Contabilização Offline (CTBANFS)
Produto: | Microsiga Protheus® |
Versões: | SIGAFAT - Faturamento (P11.80 e P12) |
Ocorrência: | Baixa performance na rotina de contabilização off-line |
do documento dos documentos de saída (CTBANFS) |
Ambiente: | Faturamento (SIGAFAT) |
Conhecimento: | MÉTODO 1 → Contabilização Passo a passo: | Deck of Cards |
---|
startHidden | false |
---|
effectDuration | 0.5 |
---|
id | OCORRÊNCIAS |
---|
effectType | horizontal |
---|
loopCards | true |
---|
| Card |
---|
default | true |
---|
id | 0. Instruções para a resolução |
---|
label | MV_CNFSTHR |
---|
| O parâmetro MV_CNFSTHR habilita a contabilização Off-Line utilizando Múltiplas Threads para acelerar |
|
|
o processamento (MV_CNFSTHR)o processamento. Abaixo descrevo um comparativo entre o processamento padrão da rotina CTBANFS e o processamento com múltiplas threads.
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 a 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 |
|
|
. Observações: 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 |
---|
| - O numero máximo de threads para o parâmetro MV_CNFSTHR e 30, porem recomendamos testes com valores menores para acompanhar o ganho de performance;
|
|
|
|
Image Removed- ;
- O parâmetro MV_PRELAN deve esta configurado com o conteúdo igual a "D"
|
|
|
|
Image Removed | Image Removed |
---|
MÉTODO 2 → Contabilização Off-Line utilizando o parâmetro (MV_OPTNFS)
Esta parametrização Card |
---|
default | true |
---|
id | 060720201 |
---|
label | MV_OPTNFS |
---|
| O parâmetro MV_OPTNFS 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 |
|
|
A1. Alterar o parâmetro MV_OPTNFS para o conteúdo igual a .T. (Verdadeiro); |
|
|
Image Removed
B2. 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ão | Descrição |
---|
610 | Documento de Saída - Inclusão de Documento Itens | 611 | Rateio (Tabela SDE) - Devolução de Compras | 612 | Pedido de Venda - Inclusão de Documento Itens | 613 | Documento de Saída - Inclusão de Documento Rateio Itens | 620 | Documento de Saída - Inclusão de Documento Total | 621 | Pedido de Venda - Inclusão de Documento Total | 631 | Permite a contabilização pela SL4 (Itens de Venda por Forma de Pagamento) | 678 | Documento 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 Removed
- No modo PADRÃO (MV_OPTNFS = .F.) quando incluímos as LP's informamos nos campos macro-executados o apelido das tabelas utilizadas,
|
|
|
no abaixo Image Removed
PERFORMÁTICO - performático (MV_OPTNFS = .T.) devemos obrigatoriamente ajustar as LP's alterando os campos macro-executados para o novo apelido "CTBANFS"
|
|
|
Image Removed
Importante:
Dica |
---|
| - 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;
|
|
|
|
Observação: - Você pode utilizar este mecanismo de performance em conjunto com
|
|
|
|
as múltiplas threads.MÉTODO 3 →- o parâmetro MV_CNFSTHR (Múltiplas Threads);
- Se os Lançamentos Padrões Offline foram definidos para tratar o apelido “CTBANFS” os mesmos não poderão ser utilizados em um processo de contabilização Online.
|
|
Card |
---|
default | true |
---|
id | 0. Instruções para a resolução |
---|
label | 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. |
Card |
---|
default | true |
---|
id | 0. Instruções para a resolução |
---|
|
|
|
Image Removedlabel | Sequencia de Contabilização |
---|
|
|
|
MÉTODO 4 →Revisão nas sequencias de contabilização | Um fator que diminui a performance da rotina CTBANFS |
|
|
e Sequencias " para um mesmo lançamento padrão, por isso recomendamos que a quantidade não ultrapasse 10 sequencias. |
|
|
Image Removed
Pode lhe interessar: |