Eu tenho um banco de dados do SQL Server 2008 R2 sendo usado por vários programas implantados.
Pergunta: Existe uma maneira fácil de exibir quanto espaço cada tabela consome, para todas as tabelas no banco de dados, e distinguir espaço lógico de espaço em disco?
Se eu usar o SSMS (Management Studio), as propriedades de armazenamento mostradas no banco de dados exibem 167 MB com 3 MB "disponíveis" (aproximadamente o tamanho certo, mas estou preocupado com os 3 MB disponíveis - este é um limite para se preocupar , supondo que eu saiba que tenho espaço em disco suficiente?)
Eu posso detalhar cada tabela, mas isso leva uma eternidade para fazer.
Sei que posso escrever minhas próprias consultas e testar, mas gostaria de saber se já existe uma maneira fácil (integrada?) De fazer isso.
Foi respondido no Stack Overflow:
fonte
A consulta vinculada e copiada por @Nelson é imprecisa: ignora as exibições indexadas, os índices de texto completo, os índices XML, etc.
Se você deseja uma consulta que inclua tudo sem executar
sp_spaceused
viasp_MSForEachTable
, então eu já publiquei duas variações (uma aqui no DBA.StackExchange e a outra no StackOverflow) para não copiá-las aqui:Por cada tabela / exibição indexada: sp_spaceused - Como medir o tamanho em GB em todas as tabelas no SQL
Por cada índice: uso de espaço em sys.allocation_units e sp_spaceused
fonte
Apenas por diversão, aqui está uma consulta que irá gerar os mesmos dados que o relatório na resposta de nateirvin
Ok, porque eu realmente me odeio, escrevi uma consulta que irá gerar os resultados do relatório, formatá-lo como uma tabela HTML e enviá-lo como um email. A correspondência das cores de plano de fundo do relatório é deixada como um exercício para o leitor.
fonte