TSQL – How to get sizes of all databases on a server

Typical database in SQL Server is a combination of Data Files and Log Files. Here is the query to find size of Data files, Log Files, and Total Size of Database in GB

SELECT [Database Name] = DB_NAME(database_id),
       [Type] = CASE WHEN Type_Desc = 'ROWS' THEN 'Data File(s)'
                     WHEN Type_Desc = 'LOG'  THEN 'Log File(s)'
                     ELSE 'Total' END,
       [Size in GB] = CAST( ((SUM(Size)* 8) / 1024.0) AS DECIMAL(18,2) )
FROM   sys.master_files
GROUP BY      GROUPING SETS
              (
                     (DB_NAME(database_id), Type_Desc),
                     (DB_NAME(database_id))
              )
ORDER BY      DB_NAME(database_id), Type_Desc DESC
GO
-- NOTE: GROUPING SETS is not available in SQL 2005 or older versions, you have to GROUP BY usign DB_NAME(database_id), Type_Desc

There are plenty of other ways to get the Database size including lot of other information, few of them are listed below:

sp_helpdb
-- This gives total Database size of all databases on the SQL instance
-- sp_helptext also gives Created Date, Owner, Status and Compatibility Level

sp_helpdb 'msdb' -- msdb is the DB Name in the example
-- In addition to Database size, it gives Location and Size of each Data Files and Log Files including its growth options

use msdb
GO
sp_spaceused 
-- It is used to find unallocated space


-- If you like playing around different tables, go ahead and experiment wtih following tables
select * from sys.database_files
select * from sys.master_files
select * from sys.allocation_units 
select * from sys.partitions 
select * from sys.data_spaces
Advertisements
This entry was posted in Productivity, Script, SQL and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s