SQLSERVER查詢資料庫檔案大小
阿新 • • 發佈:2021-08-20
SQLSERVER一個庫的檔案分為資料檔案(行資料)和日誌檔案兩個檔案,詳情可以在資料庫的屬性->檔案中檢視。
在資源管理器中開啟檔案所在路徑可以直接看到這兩個檔案
但是,大多數時候我們的資料庫安裝在遠端伺服器上,在不遠端的情況下,可以使用如下SQL語句:
1、查詢各個磁碟分割槽的剩餘空間(就是C盤還有多少空間,D盤還有多少...):
Exec master.dbo.xp_fixeddrives
2、查詢資料庫的資料檔案及日誌檔案的相關資訊(包括檔案組、當前檔案大小、檔案最大值、檔案增長設定、檔案邏輯名、檔案路徑等):
select * from [資料庫名].[dbo].[sysfiles] --轉換檔案大小單位為MB: select name, convert(float,size) * (8192.0/1024.0)/1024. from [資料庫名].dbo.sysfiles
3、查詢當前資料庫的磁碟使用情況:
Exec sp_spaceused
database_size:資料庫大小(就是資料檔案和日誌的大小),也就是上面size相加的值(位元組換算成兆)
unallocated space:未分配空間。
4、查詢資料庫伺服器各資料庫日誌檔案的大小及利用率:
DBCC SQLPERF(LOGSPACE)
5、檢視資料檔案佔用(所需許可權較大):
DBCC showfilestats
6、一個全面的SQL:
SELECT a.name [檔名稱] ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [檔案設定大小(MB)] ,CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [檔案所佔空間(MB)] ,CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0 AS DECIMAL(12,1)) AS [所佔空間率%] ,CASE WHEN A.growth =0 THEN '檔案大小固定,不會增長' ELSE '檔案將自動增長' end [增長模式] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN '增量為固定大小' WHEN A.growth > 0 AND is_percent_growth = 1 THEN '增量將用整數百分比表示' ELSE '檔案大小固定,不會增長' END AS [增量模式] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB' WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%' ELSE '檔案大小固定,不會增長' end AS [增長值(%或MB)] ,a.physical_name AS [檔案所在目錄] ,a.type_desc AS [檔案型別] FROM sys.database_files a INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id]
其中的檔案設定大小就是該資料庫的檔案大小
喜歡請讚賞一下啦^_^微信讚賞
支付寶讚賞