Ir para o conteúdo principal

[SEI][SPIKE] Realizar análise para redução do espaço em disco ocupado pelo SEI

CENÁRIO ATUAL

O Sistema Eletrônico de Informação é parte do projeto Governo Sem Papel, mantido pelo Estado de Rondônia, sendo utilizado para a geração e tramitação de processos entre secretarias. Economizando milhões em papel e impressão e acelerando o fluxo dos trâmites.

PROBLEMA

Com a ampla adoção pelas secretarias uma grande quantidade diária de dados é gerada. A versão utilizada possuí problemas conhecidos de performance e otimização e não pode ser atualizada devido a entraves burocráticos. O crescimento da utilização de recursos, principalmente de disco, gera dificuldades para a manutenção de logs, rotinas de backup, lentidão na aplicação e até mesmo alto custo para armazenamento.

OBJETIVO

Sendo definido o cenário atual e explicitado o problema, tem-se como objetivo primário a identificação de uma ou mais soluções que possibilitam a diminuição do espaço em disco ocupado pela base de dados da aplicação, assim como os riscos inerentes a cada solução identificada e a legalidade da proposta.

PREMISSAS

    P1)

  1. Com os entraves burocráticos, hoje não é possível realizar correção via software, sendo necessárias a utilização de rotinas de banco;
  2. P2) Mais de 90% do volume de dados estão concentrados nas tabelas dbo.versao_secao_documento e dbo.documento_conteudo;

ENVOLVIDOS

  • Coordenadoria de Análise e Gestão de Dados
  • Coordenadoria de Infraestrutura
  • Adriano B. Sol Sol

ESCOPO

Dado nosso objetivo proposto, e considerando as premissas PRE1 e PRE2, definimos pelo escopo deste estudo apenas as tabelas dbo.versao_secao_documento e dbo.documento_conteudo;

PROPOSTASOLUÇÕES PROPOSTAS

1) Para as propostas listadas a seguir, são considerados o escopo definido na seção anterior.

S1) Exclusão dos dados repetidos - #IDEIA_TIAGO. Sendo necessária as seguintes validações

V1. Estabilidade da Aplicação - será necessário validar se as chaves removidas não impactarão em erros inesperados, procurando por marcadores que informam a quantidade de versões, por exemplo.

V2. Validação de Integridade - a maioria das transações possuem validação de integridade (para evitar operações fraudulentas). É necessário um estudo para identificar se não existem validadores de integridade nos registros, como Verificação de Somatória, Verificadores de Dispersão, entre outros.

S2) Atualização dos registros - Esta proposta consiste na atualizado dos registros de histórico de versão do documento assinado e visualizado por uma mensagem padrão, diminuindo consideravelmente. Sendo necessária a validação V2 da proposta S1.

S3) Expurgo - O expurgo consiste na remoção dos dados para uma outra tabela, ficando como histórico. Operações como movimentação das bases de dados levariam em conta apenas os dados que não foram expurgados, se tornando mais rápidas. Os backups nessas tabelas de expurgo poderiam ser menos recorrentes. A economia ocorreria na frequência dos backups e nos snapshots da aplicação. Sendo necessária as mesmas validações da proposta S1.

S4) Particionamento das Tabelas - embora não culmine para uma efetiva redução no espaço em disco, essa solução permite uma possível melhoria na performance. Para isso, é necessário um estudo visando identificar as chaves de partição e a granularidade.

O particionamento de tabelas só é efetivo se as consultas se aproveitarem dessa solução.

MAPA DE RISCO

PROPOSTA

ABORDAGEM

RISCO

EFICIÊNCIA

COMPLEXIDADE

P1

Exclusão

Alto

Alta

Altíssima

P2

Atualização

diodio/Alto

Média

Altíssima

P3

ExpurgoMédioMédia/AltaMédia/Alta
P4

Particionamento

Nulo

N/ANecessita de Estudo

Alta

 

VALIDAÇÃO

 

APLICAÇÃO

 

CRONOGRAMA

Solicitar ambiente de testes para a Coordenadoria de Infraestrutura.

 

REFERÊNCIAS

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms177411(v=sql.105)?redirectedfrom=MSDN

https://dba.stackexchange.com/questions/62707/is-table-partitioning-improving-performance-is-it-worth-it