Ultimamente, em vez de apenas aumentar os arquivos quando eles se aproximam de 80% de utilização de arquivos, tenho sido mais proativo em recuperar espaço por meio de truques comuns, como desfragmentar heaps, adicionar e descartar índices clusterizados, implementar compactação de linha ou página, etc.
No entanto, há alguns casos em que consegui recuperar ainda mais espaço executando DBCC CLEANTABLE . Com centenas de bancos de dados em meu ambiente, não é possível saber o que os usuários fazem em cada um e é totalmente aceitável que haja mudanças envolvendo a eliminação de colunas de tamanho fixo. Normalmente, encontrei essas oportunidades observando contagens de linhas versus contagens de páginas em alguns scripts de utilização de espaço de objeto que escrevi. Eu gostaria de dar um passo adiante tentando automatizar a detecção desses tipos de cenários.
O que eu gostaria de saber é se alguém está monitorando ativamente esse tipo de oportunidade e, em caso afirmativo, o que você procura especificamente?
Minha ideia era escrever algo como reunir o tamanho máximo e mínimo de uma linha, o número de linhas na tabela, o número de páginas alocadas e o número de páginas usadas e, em seguida, fazer algumas contas básicas para registrar os resultados que estão bem fora do que seria "esperado".