Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Varejo Franquias e Redes

Linha de Produto:

Franquias e Redes

Segmento:

Varejo

Módulo:PDV Omnishop
Função:Configuração
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVARLIVEPDV-17638


02. SITUAÇÃO/REQUISITO

Informado que o excesso de processos do PostgreSQL está causando lentidão na máquina e consumo de 100% de CPU da mesma.

03. SOLUÇÃO

Para tentar reduzir o consumo criamos uma rotina de expurgo de dados do banco TOTVSPDV.

Adicionado na API de Configuração um novo método (limparhistoricobanco)
Adicionado no Mozart um novo temporizador, para que seja executado o Limpar histórico banco a cada 2h.

No novo método será realizada a limpeza das seguintes tabelas com as seguintes condições:

Tabela Venda e suas dependências:
    Será obtido a data atual e a partir dela, desconsiderado os últimos 90 dias. Será obtido 1.000 vendas realizadas antes dessa data retornada e na sequencia verificado a situação dessas vendas.
    Vendas com a situação de finalizada, porém com a coluna sincronizado_venda = false, não serão deletadas.
    Venda com situação de cancelada, porém com a coluna sincronizado_venda = false OU sincronizado_cancelamento = false, não serão deletadas.
    Qualquer uma das vendas obtidas que não corresponda a uma data inferior a data atual - 90 dias, não serão deletadas.
    Para realizar a deleção da tabela venda, é necessário deletar suas dependências. Ou seja, a partir do momento que a venda atender as condições citadas a cima será obtido os itens, pagamentos, pagamentos tef, pagamentos complementares, descontos no total e descontos no item dessa respectiva venda. Todos os dados vinculados a ela serão apagados.
    Número de registro deletados ou caso ocorra algum erro, será logado no LOG centralizado.
    Tempo aproximado: 2min e 30s
    
Tabela Pre_venda e sua dependências:
    Será obtido a data atual e a partir dela, desconsiderado os últimos 90 dias. Será obtido 1.000 pré-vendas realizadas antes dessa data retornada e na sequencia verificado a situação dessas pré-vendas.
    Serão deletadas somente as pré-vendas com status de CANCELADA, FINALIZADA E RESGATADA.
    Número de registro deletados ou caso ocorra algum erro, será logado no LOG centralizado.
    
Tabela Venda_Custodia_XML:
    Será obtido a data atual e a partir dela, desconsiderado os últimos 90 dias. Será obtido 1.000 XMLs salvas antes dessa data retornada e na sequencia verificado a situação dessas XML.
    Serão deletadas somente as XMLs onde a coluna enviar_retaguarda seja false e a coluna enviar_contingencia_retaguarda também seja false.
    Número de registro deletados ou caso ocorra algum erro, será logado no LOG centralizado.
    
Tabela MzFilaHistorico
    Será obtido a data atual e a partir dela, desconsiderado os últimos 90 dias. Será obtido 1.000 registros gravados antes dessa data retornada.
    Todos os registros anteriores a essa data serão deletados.
    Número de registro deletados ou caso ocorra algum erro, será logado no LOG centralizado.
    
O tempo "médio" obtido para o delete desses registros foi de 02min 20seg, porém na base utilizada para teste não havia registros na MzFilaHistorico somente 106k de registros das demais tabelas.


Local do log de registros na versão 3.2:

O número total de registros que serão deletados, serão logados no arquivo C:\totvspdv\logs\LimparHistoricoBanco.log. Ele exibirá qual foi a data e hora da execução em cada uma das tabelas e quantos registros foram deletados. 

04. DEMAIS INFORMAÇÕES

N/A

05. ASSUNTOS RELACIONADOS

  • N/A