Nel post di oggi vedremo come ottenere le Dimensioni delle tabelle di un Database in SQL Server tramite SSMS (SQL Server Management Studio).
Tramite la stored procedure sp_spaceused, messa a disposizione da SQL Server, è possibile visualizzare tutte le informazioni relative ad una tabella, una vista indicizzata o una coda di Service Broker come lo spazio riservato e utilizzato all’interno del database o del disco.
Dimensioni delle tabelle di un Database in SQL Server
sp_spaceused
La stored procedure (sp_spaceused) permette di visualizzare le informazioni richiamandola per ogni singola tabella di cui, però, dobbiamo già conoscere il nome da passargli come parametro.
La si può richiamare in questo modo
Query
Se però abbiamo la necessità di visualizzare la dimensione di tutte le tabelle di uno specifico database, e magari ordinare l’elenco in base alle dimensioni delle tabelle, dobbiamo utilizzare una query più complessa.
Questa è la query che ci permette di visualizzare le dimensioni di tutte le tabelle di un DataBase
Il codice è abbastanza commentato in modo da capire i passaggi che vengono effettuati prima di arrivare ad avere l’elenco delle tabelle con le rispettive dimensioni.
Descrizione della query
Per prima cosa indichiamo il database su cui verrà eseguita la query
Dichiariamo le variabili che verranno utilizzare
Creiamo la tabella temporanea #Tables e la popoliamo con tutti i nomi delle tabelle presenti nel database (recuperati dalla tabella INFORMATION_SCHEMA.TABLES)
Creiamo la tabella temporanea #SpaceUsed e, ciclando la tabella temporanea #Tables, la popoliamo con i valori di ogni singola tabella recuperati tramite la stored procedure sp_spaceused
Ora non ci resta che effettuare una SELECT sulla tabella temporanea #SpaceUsed in modo da visualizzare tutti i dati delle tabelle del database.
Per una migliore interpretazione dei dati convertiamo tutti i valori in GByte e li ordiniamo dalla più grande in modo decrescente
Al termine della select eliminiamo le tabelle temporanee
Dimensioni delle tabelle di un Database in SQL Server
Visualizzazione risultato
Ecco un esempio di utilizzo della query che abbiamo appena visto
Per maggiori informazioni sulla stored procedure sp_spaceused vi rimando a questo link
A presto 😉