Get Tables Sizes for a Database

Posted by Isaac Blum at 6 November 2009

Category: Uncategorized

Tags: , , ,

Thanks  to http://www.pgrconsulting.com/useful_p_and_t.htm 

– Create the temp table for further querying

CREATE TABLE #temp(

            rec_id               int IDENTITY (1, 1),

            table_name       varchar(128),

            nbr_of_rows     int,

            data_space       decimal(15,2),

            index_space     decimal(15,2),

            total_size          decimal(15,2),

            percent_of_db  decimal(15,12),

            db_size             decimal(15,2))

 

– Get all tables, names, and sizes

EXEC sp_msforeachtable @command1=”insert into #temp(nbr_of_rows, data_space, index_space) exec sp_mstablespace ‘?’”,

                                    @command2=”update #temp set table_name = ‘?’ where rec_id = (select max(rec_id) from #temp)”

 

– Set the total_size and total database size fields

UPDATE #temp

SET total_size = (data_space + index_space), db_size = (SELECT SUM(data_space + index_space) FROM #temp)

 

– Set the percent of the total database size

UPDATE #temp

SET percent_of_db = (total_size/db_size) * 100

 

– Get the data

SELECT *

FROM #temp

ORDER BY total_size DESC

 

– Comment out the following line if you want to do further querying

DROP TABLE #temp

  • Share/Bookmark

Leave a Reply

Leave a Reply
  • (required)
  • (required) (will not be published)

  • Archives

  • Pages

  • Tags

  • More

Get Adobe Flash playerPlugin by wpburn.com wordpress themes