Para saber quanto uma tabela está usando de espaço num banco de dados, basta usar a stored procedure 'sp_spaceused' e o nome da tabela como parâmetro:
sp_spaceused tabela
name rows reserved data index_size unused
tabela 3650326 1415392 KB 1204728 KB 210440 KB 224 KB
Mas se eu quiser saber quanto cada tabela de um banco de dados está ocupando?
Vamos usar uma outra stored procedure, 'sp_MSforeachtable'.
É aí que entra esse script que resolve nosso problema:
CREATE TABLE #TabelaTemporaria
(
[name] NVARCHAR(128),
[rows] CHAR(11),
reserved VARCHAR(18),
data VARCHAR(18),
index_size VARCHAR(18),
unused VARCHAR(18)
)
insert #TabelaTemporaria exec sp_MSforeachtable 'EXEC sp_spaceused ''?'''
select [name] as Tabela, [rows] as Linhas,
cast(replace(reserved, ' KB','') as int) as Reservado,
cast(replace(data, ' KB','') as int) as Dados,
cast(replace(index_size, ' KB','') as int) as Tam_Index,
cast(replace(unused, ' KB','') as int) as NaoUsado
into #TabelaFinal
from #TabelaTemporaria
select * from #TabelaFinal order by Reservado desc
drop table #TabelaFinal
drop table #TabelaTemporaria
O resultado será parecido com esse:
Neste caso, já sabemos quem é a tabela que está alocando mais espaço dentro do banco de dados.
Nenhum comentário:
Postar um comentário