Executamos um serviço de rastreamento de trabalho como parte do software da empresa. Os relatórios são gerados pelo SQL Server (Standard) Reporting Services geralmente diariamente, mas frequentemente como e quando necessário antes das reuniões, etc.
À medida que os trabalhos progridem, seus status mudam e os detalhes dos relatórios mudam. Devido ao legado do aplicativo front-end e do banco de dados, não armazenamos tantos marcos quanto necessários para que os gerentes analisem os relatórios históricos.
Os gerentes costumam perguntar "Podemos ver onde XYZ estava na semana passada?" ou coisas como "Vamos dar uma olhada no desempenho do Project1 em junho passado?" mas a execução dos relatórios no backup do banco de dados Project1 mostra 100% concluída, pois agora está concluída.
Qual é a melhor maneira de habilitar relatórios históricos em um nível diário com o SQL Server Standard?
Idealmente, gostaríamos de manter 3 meses de 5 relatórios diferentes armazenados diariamente, se possível?
Se você perdeu os dados históricos (ou seja, eles são substituídos em vez de armazenados como um histórico de transações), não é possível reconstruir o estado histórico - ponto final. No entanto, existem algumas abordagens para lidar com isso.
Crie um processo automatizado que consulte o sistema por meio do SSRS ou algum outro mecanismo e salve os relatórios históricos em um arquivo em algum lugar. O SSRS exporta uma API de serviço da Web que permite executar relatórios (parametrizados, se necessário) e, em seguida, salvar a saída em um arquivo. Isso pode ser operado por qualquer coisa capaz de consumi-lo.
Crie um processo ETL que tira um instantâneo dos dados e os compara com a posição do instantâneo anterior. Onde as alterações são detectadas, elas podem ser gravadas em uma tabela histórica. Se você tiver a opção de colocar gatilhos no banco de dados de origem, poderá criar gatilhos que gravem as informações de log de auditoria.
Se você precisar de algo mais elaborado, poderá criar um data mart - faça uma pesquisa no Google sobre 'dimensões de alteração lenta do tipo 2' para obter algumas ideias sobre como implementar isso. Você pode usar um mecanismo de captura de alterações como o descrito em (2) para obter os dados conforme necessário. Você pode armazenar o histórico de transações e reconstruir o status nos relatórios ou pode fazer um instantâneo periódico dos dados com seu status naquele ponto.
Observe que a Standard Edition não oferece suporte à captura de dados alterados.
Se você deseja apenas os relatórios armazenados diariamente (e não os dados em si), pode criar seus cinco relatórios e configurar uma assinatura diária para ser entregue a um compartilhamento de arquivos. Consulte Entrega de compartilhamento de arquivos no Reporting Services .
Acredito que você precise de relatórios parametrizados no SSRS - com um parâmetro de data para o seu relatório. Você encontrará os detalhes teóricos e práticos e alguns tutoriais passo a passo sobre parâmetros em relatórios SSRS nos seguintes artigos: