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)

    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;

    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

    MédioMédio/Alto

    Média

    Altíssima

    P3

    Expurgo Médio Média/Alta Mé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