Como saber quais tabelas estão ocupando mais espaço em um banco de dados SQL Server 2005?
Tenho certeza de que há algum procedimento armazenado do sistema que mostra essas informações.
Eu tenho um banco de dados de teste que cresceu de 1 TB para 23 TB. No momento, estamos fazendo muitos testes de conversão de cliente no banco de dados, o que envolve a execução da mesma conversão Stored Procedure várias vezes. Ele faz DELETEs que tenho certeza que está aumentando o log de transações. Mas isso me fez pensar em fazer esta pergunta.
informação
o grande problema é a tabela dbo.Download, ela cria um armazenamento massivo que na verdade não é necessário, eu tinha 3 GB antes de truncá-lo, depois 52 MB;)
sql-server
sql-server-2005
Gerhard Weiss
fonte
fonte
Respostas:
Experimente este script - ele listará o número de linhas e o espaço usado pelas linhas de dados (e o espaço total usado) para todas as tabelas em seu banco de dados:
fonte
SELECT @@VERSION
para descobrir) Qual nível de compatibilidade de banco de dados seu banco de dados tem ??Use sp_spacedUsed
Exec sp_spaceused N'YourTableName'
Ou se você deseja executar o
sp_spaceused
para cada tabela em seu banco de dados, você pode usar este SQL:O SQL acima é daqui
fonte
exec sp_msforeachtable 'exec sp_spaceused N''?'''
sp_msforeachtable
existe desde pelo menos SQl Server 2000sp_msforeachtable 'sp_spaceused [?]'
se quiser. Verificado de volta para SQL2000.O comentário de Rossisdead respondeu melhor a essa pergunta para mim, gostaria que não estivesse enterrado em um comentário. Isso será útil para pessoas como eu que não estão tentando fazer o script da solução (o OP não pediu um snippet de código)
fonte
Obrigado a @marc_s pela resposta. Eu precisava saber dados vs espaço de índice, então fui em frente e expandi a consulta para incluir isso.
fonte