Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

REGERAR SALDOS E CUSTOS - MELHORIA DE PERFORMANCE

Características do Requisito

Linha de Produto:

RM

Segmento:

Construção e Projetos

Módulo:

Gestão de Estoque, Compras e Faturamento.

Rotina:

Rotina

Nome Técnico

Regerar Saldos e Custos

EstRegerarSaldosECustosProcAction

 

 



Chamados Relacionados

TTKHBJ

País(es):

Brasil

Banco(s) de Dados:

SQL e Oracle

Tabelas Utilizadas:TRELSLD

Sistema(s) Operacional(is):

Windows


Descrição

Estamos implementando a partir das versões 11.82.43 e 12.1.10 do TOTVS Gestão de Estoque, Compras e Faturamento uma considerável melhoria de performance no processo "Regerar Saldos e Custos".

Anteriormente este processo trabalhava apenas de forma sequencial, ou seja, era regerado um produto de cada vez não importando qual era a capacidade do servidor de aplicação e do banco de dados.

A partir de agora a execução deste processo poderá ser paralelizada, ou seja, poderão ser regerados N produtos de uma só vez e o seu tempo de cálculo estará diretamente relacionado ao poder de processamento do ambiente onde o mesmo está sendo executado, ou seja, quanto mais processadores e memória possuir o servidor de aplicação, mais produtos serão calculados simultaneamente e consequentemente muito menos tempo levará o processo. Entretanto, é importante salientar que a execução em paralelo irá exigir mais do servidor de banco de dados, já que cada cálculo abre uma conexão.

Assim, caso o ambiente não esteja dimensionado adequadamente é possível que ao executar o cálculo de forma paralela sejam exibidas mensagens de "timeout" se o Banco de Dados estiver sobrecarregado, ou de "timeout no connection pool" no Oracle se o número de conexões simultâneas ultrapassar o pré-estabelecido. Deverão ser observados ainda, outros gargalos como o tráfego de rede e outros processos concorrentes, principalmente em bases Oracle, onde por padrão existe um número limitado de conexões simultâneas.

Recomendamos que antes que o processo seja executado, o seu servidor de banco de dados seja analisado e dimensionado corretamente para absorver todas as requisições paralelas e poder utilizar o ganho de performance proporcionado por este recurso.

 


Procedimento para Utilização

Após a atualização da versão 11.82.43 ou da versão 12.1.10, ao ser acessado o TOTVS Gestão de Estoque, Compras e Faturamento por um usuário que seja Supervisor, o sistema apresentará a mensagem abaixo, informando sobre a existência da nova forma de execução do processo "Regerar Saldos e Custos":

TELA DA MENSAGEM NA ABERTURA DO SISTEMA

TELA DA MENSAGEM NA ABERTURA DO SISTEMA

TELA DA MENSAGEM NA ABERTURA DO SISTEMA

TELA DA MENSAGEM NA ABERTURA DO SISTEMA

Image Added

 Para executar este processo com paralelismo vá em "Estoque > Processos > Regerar Saldos e Custos".

Na primeira tela clique em "Avançar".


Na tela de "Seleção de Produtos" informe os dados dos produtos cujos saldos e custos serão regerados e clique em "Avançar".

Na tela de "Parâmetros Gerais" do processo marque o campo 'Execução Paralela', além dos demais parâmetros habitualmente utilizados por sua empresa na Regeração de Saldos e Custos.

Ao passar o mouse sobre o checkbox do campo o sistema apresentará ao usuário uma dica acerca da função do campo e sobre o seu consumo de recursos:

Image Added

Ao ser selecionada a Execução Paralela o sistema habilitará um símbolo de alerta.


Passando o mouse sobre o alerta o sistema irá informar o usuário sobre o maior consumo de recursos do banco de dados que a Execução Paralela exige.

TELA COM O ALERTA SOBRE O DIMENSIONAMENTO DO BANCO DE DADOS

TELA COM O ALERTA SOBRE O DIMENSIONAMENTO DO BANCO DE DADOS

TELA COM O ALERTA SOBRE O DIMENSIONAMENTO DO BANCO DE DADOS

TELA COM O ALERTA SOBRE O DIMENSIONAMENTO DO BANCO DE DADOS

Image Added

Dica
titleDica
A Execução Paralela também pode ser utilizada caso o processo "Regerar Saldos e Custos" seja executado através de agendamento.


Fórmulas

Um grande ofensor no processo de regeração de saldos e custos é a utilização de fórmulas complexas ou que demandam informações onde o sistema precisa realizar consulta na base de dados para obter o resultado. Com isso, criamos uma função de fórmula chamada "TABITMREG". Esta função de fórmula possui comportamento semelhante ao da "TABITM", porém quando é utilizada durante o processo de regeração, o valor retornado vem direto da memória, não sendo necessário consulta ao banco de dados, melhorando consideravelmente a performance.

Exemplo de utilização:

A fórmula "KQT * KPU" pode ser substituída pela fórmula "TABITMREG('QUANTIDADE','V') * TABITMREG('PRECOUNITARIO','V')".

Ou TABITM ('VALORTOTALITEM', 'V') por TABITMREG ('VALORTOTALITEM' , 'V').

Em testes realizados, esta alteração da fórmula foi a que demonstrou melhor ganho de performance.


Insert em Lotes

A partir da versão 12.1.25, foi criado o parâmetro Número de Registros por Lote. Ele é utilizado no processo de Regeração de Saldos e Custos para definir a quantidade de registros a ser inserida no banco a cada atualização. Por default o parâmetro é definido com o valor de 20.000, mas é possível informar valores entre 1 e 30.000. Este valor pode gerar erro de TimeOut ao inserir os registros se o mesmo tiver muito elevado para o SGBD, por isso é necessário atentar para este parâmetro que esta em Definições de Estoque e se necessário diminuir o valor.

Image Added


Otimize seu ambiente e configure o seu SGDB para que sua empresa esteja apta a realizar a Regeração de Saldos e Custos de forma paralela e possa desfrutar do enorme ganho de performance que é proporcionado por esse recurso

 

.

Informações
titleOtimização do Banco de Dados
  • Dimensionar o pool de conexões do banco para suportar várias conexões simultâneas de forma que outros processos não sejam prejudicados. Por padrão, são liberadas apenas 100 conexões simultâneas com a base de dados para cada aplicação. Isso pode ser muito pouco dependendo do porte da base, mas não existe um número ideal para todos, é necessário acompanhar o uso através de performance counters por exemplo se necessário e dimensionar o valor mínimo conforme o uso cotidiano e o valor máximo considerando uma contingência para casos especiais. Para alterar o tamanho do pool na aplicação utilize a tag abaixo no arquivo de configuração do host (RM.Host.Service.exe.config):

<add key="DBSConnStrExtensions" value=";Min Pool Size=5;Max Pool Size=30;" />

Onde o min pool size deve ser aumentado de forma a comportar o uso regular, e o Max pool size deve ser aumentado de forma a contemplar situações de uso elevado. O valor a ser colocado no parâmetro deve ser determinado preferencialmente por alguém da T.I. em conjunto com o DBA da empresa.