Às vezes, é necessário fazer um pouco de limpeza, ou pelo menos entender por que nosso banco de dados é tão grande.
Aqui está um script que permite localizar tabela por tabela, índice por índice, número de registros eo espaço em disco ocupado.
Como calcular o espaço ocupado por tabelas e índices no SQL Server
declare @SourceDB varchar (128)
declare @sql varchar (128)
criar tabela #tables (name varchar (128))
select @sql = 'insert #tables select TABLE_NAME from INFORMATION_SCHEMA.TABLES onde TABLE_TYPE = ”BASE TABLE”'
exec (@sql)
criar a tabela #SpaceUsed (nome varchar (128), linhas varchar (11), reservado varchar (18),
dados varchar (18), index_size varchar (18), varchar não utilizado (18))
declare @name varchar (128)
selecione @name = ”
enquanto existir (selecione * em #tabelas onde nome> @nome)
começar
selecione @name = min (name) de #tables onde name> @name
select @sql = 'exec ..sp_executesql N ”insert #SpaceUsed exec sp_spaceused' + @name +” ”
exec (@sql)
final
selecione o nome NomeTabella,
cast ([linhas] como decimal) righe,
elenco (esquerdo (reservado, len (reservado) -3) como decimal (18,2)) / 1024 riservato,
elenco (esquerda (dados, len (dados) -3) como decimal (18,2)) / 1024 Dati,
cast (left (index_size, len (index_size) -3) como decimal (18,2)) / 1024 Indici,
cast (left (unused, len (unused) -3) como decimal (18,2)) / 1024 NonUsato
de #SpaceUsed
pedido por riservato desc
drop table #tables
eliminar a tabela #SpaceUsed