Trovare la tabella più grande del mio DB

Se si ha la ncessità di trovare il numero di righe, colonne, dimensioni in byte di tutte le tabelle all’interno di un database senza dover aprire ogni tabella a mano, si può utilizzare lo script qui sotto, che interrogando le tabelle di sistema popola una tabella temporanea con tutti i dati sopra riportati.

CREATE TABLE #temp (
table_name sysname ,
row_count int,
reserved_size varchar(50),
data_size varchar(50),
index_size varchar(50),
unused_size varchar(50))

SET NOCOUNT ON
INSERT     #temp
EXEC       sp_msforeachtable 'sp_spaceused ''?'''
SELECT     a.table_name,
           a.row_count,
           count(*) as col_count,
           a.data_size
FROM       #temp a
INNER JOIN information_schema.columns b
           ON a.table_name collate database_default
                = b.table_name collate database_default
GROUP BY   a.table_name, a.row_count, a.data_size
ORDER BY   CAST(Replace(a.data_size, ' KB', '') 
           as integer) desc
DROP TABLE #temp

Technorati Tags: ,