-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSQL020-DataFileUsage.sql
More file actions
34 lines (33 loc) · 1.08 KB
/
SQL020-DataFileUsage.sql
File metadata and controls
34 lines (33 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
USE DB_NAME
GO
SELECT db
,file_group
,SUM(sizeGB) sum_sizeGB
,SUM(space_usedGB) sum_space_UsedGB
,SUM(free_spaceGB) sum_free_spaceGB
,ROUND((SUM(space_usedGB) / SUM(sizeGB)) * 100, 2) sum_pct_used
FROM (
SELECT DB_NAME() db
,ISNULL(fg.name, 'LOG') AS file_group
,ROUND(SUM(cast(f.size AS FLOAT) / (128 * 1024)), 2) AS sizeGB
,ROUND(SUM(cast(FILEPROPERTY(f.name, 'spaceused') AS FLOAT) / (128 * 1024)), 2) space_usedGB
,ROUND((SUM(f.size - cast(FILEPROPERTY(f.name, 'spaceused') AS FLOAT)) / (128 * 1024)), 2) free_spaceGB
,ROUND((SUM(CAST(FILEPROPERTY(f.name, 'spaceused') AS FLOAT))) / ISNULL(SUM(cast(f.size AS FLOAT)), 0) * 100, 2) AS [pct_used]
FROM sys.database_files f
LEFT JOIN sys.filegroups fg ON f.data_space_id = fg.data_space_id
WHERE ISNULL(fg.name, 'LOG') NOT LIKE 'memory_optimized%'
GROUP BY fg.name
) a
GROUP BY db
,file_group
------------------------
SELECT
db.name AS DBName,
type_desc AS FileType,
mf.name AS DataFileName,
Physical_Name AS Location
FROM
sys.master_files mf
INNER JOIN
sys.databases db ON db.database_id = mf.database_id
where db.name = DB_NAME()