Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | MICROSIGA PROTHEUS | Módulo | SIGACFG |
Segmento Executor | Framework | ||
Projeto1 | M_FRM001 | IRM1 | PCREQ-5715 |
Requisito1 | PCREQ-7805 | Subtarefa1 | PDR_FRM_FRM001-890 |
Release de Entrega Planejada | P11/P12 | Réplica |
|
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( x ) Todos | ||
Outros |
|
Objetivo
Diminuir o tempo de execução da ferramenta de atualização de dicionários e base de dados UPDDISTR
Definição da Regra de Negócio
A ferramenta UPDDISTR é utilizada para atualização de dicionários e base de dados do Protheus. Seu uso é obrigatório para migração de releases no novo conceito de release incremental. O tempo de execução é crítico para muitos clientes, pois durante a execução o sistema deve permanecer fora de uso. A melhoria em questão usou de várias estratégias, visando principalmente a diminuição do I/O (leitura e gravação de disco). O I/O é um componente crítico principalmente em ambientes virtualizados, onde a latência induzida pelos processos de entradas e saídas das VMs ( máquinas virtuais ) podem ter impacto significativo.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
APUPD030 | [Alteração] | Rotina disparada na janela inicial, sem menu |
|
Principais alterações efetuadas:
- Melhoria na verificação dos grupos de campos para o SX1. A consulta aos grupos de campos passou a ser feita em um array carregado previamente ao invés de busca na base de dados.
- Melhoria na verificação dos grupos de campos para o SX3. A consulta aos grupos de campos passou a ser feita em um array carregado previamente ao invés de busca na base de dados.
- Melhoria na verificação dos campos de usuário. Durante a verificação de integridade do SX3 já é construída uma lista de campos de usuário. Isso evita que seja necessário varrer novamente o SX3 para verificar campos de usuário no processo posterior.
- Retirada da alteração do SX4. Essa tabela não é mais utilizada.
- Melhoria na rotina de reordenamento do SX3. Antes, todos os registros eram ordenados. Agora, apenas os registros das tabelas que sofreram alterações são reordenados.
- Efetuada alteração para melhorar a performance da verificação da existência dos campos de chave de índice no SX3.Alguns índices possuem chaves com campos que são em comum. Antes de pesquisar o SX3, é criada uma lista geral de campos, retirando duplicidades, o que diminui a quantidade de buscas no SX3.
- Otimização de barras de andamento. As barras passaram a ter uma quantidade de passos máxima de 50. O programa calcula o passo baseando-se na quantidade de registros e só dispara a função de atualizar a régua quando da mudança de passo.
- Na atualização das tabelas de dados, verificar a existência da tabela no banco antes da varredura do SX3 para determinar sua estrutura. Isso é importante pois muitos ambientes usam uma pequena parte das tabelas de dados.
- Na atualização da tabela SXB era feita uma varredura na tabela destino pesquisando a consulta na tabela com os novos dados. Essa abordagem faz sentido na atualização completa (MP710TO120) mas é pouco eficiente no UPDDISTR. No UPDDISTR a varredura passou a ser feita a partir da tabela com os novos dados (menor) localizando as consultas na tabela definitiva (completa). Com isso, o I/O foi muito reduzido.
- O pack de dicionários (exclusão física de registros excluídos) deixou de ser efetuada ao final do UPDDISTR, ficando apenas no MP710TO120,
- Os "refreshs" (atualizações de tela) passaram a ser feitos a cada 2 segundos ao invés de serem efetuados em cada iteração do laços de processamento. Isso diminui a troca de mensagens com o Application Server.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|