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.

 

USE [tempdb]

CREATE TABLE #DatabaseSize
(
	[database_name] sysname,
	[type_desc] nvarchar(50),
	[state_desc] nvarchar(50),
	[size_in_MB] bigint
);

EXEC sp_MsForEachDb 
'USE [?]

INSERT INTO #DatabaseSize
SELECT
	DB_NAME(),
	type_desc,
	state_desc,
	SUM(size * 8 / 1024)
FROM 
	sys.database_files
GROUP BY
	type_desc,
	state_desc
'

SELECT * FROM #DatabaseSize ORDER BY [size_in_MB] DESC

--cleanup
DROP TABLE #DatabaseSize
 

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

SELECT
    DB_NAME([database_id]) AS [DatabaseName],
    type_desc,
    state_desc,
    SUM(size * 8 / 1024) AS [SizeInMB]
FROM 
    sys.master_files
GROUP BY
	[database_id],
    type_desc,
    state_desc
ORDER BY 4 DESC

Add comment