[SQL]統計資料庫實體檔案空間使用情況
上課後練習一下
-- 資料來源 : 德瑞克老師的上課筆記
-- 單一資料庫查詢
USE master
GO
SELECT name N'邏輯名稱'
, size / 128.0 N'使用的磁碟空間(MB)'
, cast(fileproperty(name, 'SpaceUsed') AS INT) / 128.0 N'資料實際上使用的空間(MB)'
, size / 128.0 - cast(fileproperty(name, 'SpaceUsed') AS INT) / 128.0 N'剩餘的可用空間(MB)'
, physical_name N'實體檔案位置'
FROM
sys.database_files;
GO
-- 全部資料庫查詢
USE master
GO
CREATE table ##DBUSAGE (
[資料庫名稱] sysname,
[邏輯名稱] sysname,
[使用的磁碟空間(MB)] float,
[資料實際上使用的空間(MB)] float,
[剩餘的可用空間(MB)] float ,
[實體檔案位置] sysname
)
EXEC sp_Msforeachdb @command1 = 'use ? insert into ##DBUSAGE
SELECT ''?'' as N''資料庫名稱'' , name N''邏輯名稱'' , size/128.0 N''使用的磁碟空間(MB)'' ,
CAST(FILEPROPERTY(name, ''SpaceUsed'') AS int)/128.0 N''資料實際上使用的空間(MB)''
,size/128.0 - CAST(FILEPROPERTY(name, ''SpaceUsed'') AS int)/128.0 N''剩餘的可用空間(MB)''
, physical_name N''實體檔案位置''
FROM sys.database_files';
GO
SELECT *
FROM
##DBUSAGE
ORDER BY
[資料庫名稱]
DROP TABLE ##DBUSAGE
GO
結果畫面