Come calcolare lo spazio occupato dalle tabelle e dagli indici

0 Condivisioni

A volte c’è bisogno di fare un pò di pulizia, o comunque capire perchè il nostro database è così grande.

Ecco uno script che permette di individuare tabella per tabella , indice per indice il numero di record e lo spazio su disco occupato.

Sql Server


declare @SourceDB varchar(128)
	declare @sql varchar(128)
	create table #tables(name varchar(128))
	select @sql = 'insert #tables select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = ''BASE TABLE'''
	exec (@sql)

	create table #SpaceUsed (name varchar(128), rows varchar(11), reserved varchar(18),
		data varchar(18), index_size varchar(18), unused varchar(18))
	declare @name varchar(128)
	select @name = ''
	while exists (select * from #tables where name > @name)
	begin
	select @name = min(name) from #tables where name > @name
	select @sql = 'exec ..sp_executesql N''insert #SpaceUsed exec sp_spaceused ' + @name + ''''
	exec (@sql)
	end
	select Name NomeTabella,
	cast([rows] as decimal) righe,
	cast(left(reserved,len(reserved)-3) as decimal(18,2))/1024 riservato,
	cast(left(data ,len(data)-3) as decimal(18,2))/1024 Dati,
	cast(left(index_size ,len(index_size)-3) as decimal(18,2))/1024 Indici,
	cast(left(unused ,len(unused)-3) as decimal(18,2))/1024 NonUsato
	from #SpaceUsed
	order by riservato desc
	drop table #tables
	drop table #SpaceUsed

Se volete seguire i post di www.informarea.it potete iscrivervi al suo feed RSS.


0 Condivisioni

Fabrizio Cannatelli

Fondatore di Informarea.it, è un appassionato di informatica. Ha lavorato per molti anni come Analista Programmatore presso varie aziende utilizzando diversi linguaggi di sviluppo, oggi svolge un lavoro completamente diverso ma la voglia di comunicare e di condividere con il web i suoi studi e le sue curiosità lo hanno spinto a far nascere questo blog non solo per esprimere e mostrare la passione per questo mondo, ma anche per confrontarsi con nuove esperienze di sviluppo.

Fabrizio Cannatelli

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.