SSISDB – O banco gigante!

Me lembro de estudar o Integration Services pela primeira vez no SQL Server 2005 e logo desanimei de trabalhar com ele por ocasião do método de deploy que hoje chamamos Package. Quando o SQL Server 2012 surgiu a possibilidade de utilizarmos o método de deploy por Project fiquei muito entusiasmado e impressionado com o SSISDB Catalog e o quanto ele nos ajuda!

Porém, esta é uma relação de amor e ódio, sim, pois ele dá muito trabalho de administração em ambientes de Business Intelligence com alta frequência de execução de packages.

Neste artigo, vou compilar algumas dicas com vocês para tentar minimizar o trabalho e evitar que esse banco de dados chegue a tamanhos expressivos em sua empresa. Confira:

Parâmetros

Vá em Integration Services Catalog >> SSISDB, botão direito e abra as propriedades:

SSIDB propriedades

Neste caso os parâmetros importantes são:

  • Retention Period (days): Ao meu ver manter um log de 90 dias é mais que suficiente;
  • Server-wide Default Logging Level: Sempre trabalho com log somente de performance, ao qual, irá mostrar o tempo de execução e somente mensagens de erro. Em jobs que tem uma frequencia muito alta procuramos não gerar log – none – e deixar para somente em caso de falha ativar a visualização do log;

Compactação

A Microsoft não ativa a compactação das tabelas, pois até certo momento este recurso não estava disponível em todas edições. Porém, se você utiliza o SQL Server 2016 SP1 ou superior, pode utilizar este recurso livremente. Sendo assim, sempre que implementar o SSIDB Catalog em uma empresa, ative a compctação das seguintes tabelas, através dos comandos

USE [SSISDB]
ALTER TABLE [internal].[execution_component_phases] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE, SORT_IN_TEMPDB = ON)
ALTER TABLE [internal].[event_messages] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE, SORT_IN_TEMPDB = ON)
ALTER TABLE [internal].[operation_messages] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE, SORT_IN_TEMPDB = ON)
ALTER TABLE [internal].[execution_data_statistics] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE, SORT_IN_TEMPDB = ON)
GO

A tabela execution_component_phases pode te surpreender com o volume de dados, já tivemos a situação de encontrá-la com 247.411.878 registros e tamanho de 130 GB e ao ser compactada ir para menos de 25 GB. É incrível, vale muito a pena!

Por fim, sempre garanta que o job SSIS Server Maintenance Job esteja sendo executado no ambiente, pois é ele quem analisa os parâmetros de retenção e faz o expurgo de dados fora da janela:

Espero que este artigo possa contribuir para a sua empresa! Se você gostou, compartilhe e/ou deixe seu comentário!

Sucesso!

Vithor da Silva e Silva | CTO – Datasource Expert
vithor@datasource.expert


Referências