Adatbázisok méretének lekérdezése

Az alábbi lekérdezés segít megnézni, hogy mely adatbázisok, mennyi helyet foglalnak.

 1USE [tempdb]
 2 
 3CREATE TABLE #DatabaseSize
 4(
 5    [database_name] sysname,
 6    [type_desc] nvarchar(50),
 7    [state_desc] nvarchar(50),
 8    [size_in_MB] bigint
 9);
10 
11EXEC sp_MsForEachDb
12'USE [?]
13 
14INSERT INTO #DatabaseSize
15SELECT
16    DB_NAME(),
17    type_desc,
18    state_desc,
19    SUM(size * 8 / 1024)
20FROM
21    sys.database_files
22GROUP BY
23    type_desc,
24    state_desc
25'
26 
27SELECT * FROM #DatabaseSize ORDER BY [size_in_MB] DESC
28 
29--cleanup
30DROP TABLE #DatabaseSize

Update: 2012.03.08: van egy sokkal jobb megoldás, ami csak dokumentált funkciókat használ:

 1SELECT
 2    DB_NAME([database_id]) AS [DatabaseName],
 3    type_desc,
 4    state_desc,
 5    SUM(size * 8 / 1024) AS [SizeInMB]
 6FROM
 7    sys.master_files
 8GROUP BY
 9    [database_id],
10    type_desc,
11    state_desc
12ORDER BY 4 DESC