Tenho backups diferenciais configurados para MS SQL Server 2022 e gostaria de saber quanto cada tabela do banco de dados está contribuindo para o tamanho do backup diferencial.
A página abaixo mostra como obter as informações no nível do banco de dados, mas eu gostaria de ver a porcentagem de extensões alteradas desde o último backup completo em nível de tabela.
Existe uma maneira de fazer isso?
Gostaria de saber quais tabelas estão sendo atualizadas e quantos bytes elas estão contribuindo para o backup diferencial. É claro que o número aumentará com o tempo até que um novo backup completo seja feito.
O SQL Server não rastreia isso diretamente, mas você tem algumas opções.
Opção 1, dolorosa e imprecisa: comece com a técnica da página DBCC na postagem à qual você vinculou , mas para cada página que você examinar, você também precisará examinar o conteúdo da PÁGINA DBCC para ver a qual objectid ela pertence, juntando-se a sys.all_objects. Será doloroso escrever e também levará algum tempo para ser executado. Pior ainda, não será preciso porque, à medida que sua consulta estiver em execução, as páginas poderão ser alternadas para objetos diferentes. Por exemplo, se uma tabela fosse descartada, algumas páginas poderiam ser alocadas recentemente para algum outro objeto, e seu rastreamento reportaria o objeto "errado" como contribuindo para o diferencial.
Opção 2, rápida e imprecisa: use os DMVs de índice para rastrear quais objetos estão obtendo mais gravações. Minha maneira favorita de fazer isso é o sp_BlitzIndex de código aberto . Rode isto:
Isso lhe dará quais índices estão obtendo mais gravações (alterando mais). No entanto, isso não é exatamente o que contribui para o tamanho diferencial do backup, porque:
Eu ainda começaria com essa opção porque ela lhe dará uma ideia aproximada, rapidamente, e parece que é tudo o que você procura. (Não parece que você queira escrever a consulta na Opção 1, e certamente não estou fazendo isso de graça, ha ha ho ho.)