1
0
mirror of https://github.com/alex-bochkov/ssms-addin.git synced 2025-11-23 22:04:53 +02:00
Files
ssms-addin/QueryTemplates/Common Scripts/space-used-per-database-file.sql
2018-01-16 13:56:17 -08:00

44 lines
1.7 KiB
SQL

IF OBJECT_ID('tempdb..#Stats') IS NOT NULL DROP TABLE #Stats;
SELECT DB_NAME() AS DatabaseName,
f.name AS [FileName],
f.physical_name AS [PhysicalName],
CAST ((f.size / 128.0) AS DECIMAL (15, 2)) AS [TotalSizeinMB],
CAST (f.size / 128.0 - CAST (FILEPROPERTY(f.name, 'SpaceUsed') AS INT) / 128.0 AS DECIMAL (15, 2)) AS [AvailableSpaceInMB],
CAST(CAST (f.size / 128.0 - CAST (FILEPROPERTY(f.name, 'SpaceUsed') AS INT) / 128.0 AS DECIMAL (15, 2)) * 100 / CAST ((f.size / 128.0) AS DECIMAL (15, 2)) AS DECIMAL (15, 2)) AS [PercentFree],
[file_id],
fg.name AS [FilegroupName]
INTO #Stats
FROM sys.database_files AS f WITH (NOLOCK)
LEFT OUTER JOIN
sys.data_spaces AS fg WITH (NOLOCK)
ON f.data_space_id = fg.data_space_id
WHERE 1 = 0
OPTION (RECOMPILE);
EXEC sp_msforeachdb N'
USE [?];
INSERT INTO #Stats
SELECT DB_NAME() AS DatabaseName,
f.name AS [FileName],
f.physical_name AS [PhysicalName],
CAST ((f.size / 128.0) AS DECIMAL (15, 2)) AS [TotalSizeinMB],
CAST (f.size / 128.0 - CAST (FILEPROPERTY(f.name, ''SpaceUsed'') AS INT) / 128.0 AS DECIMAL (15, 2)) AS [AvailableSpaceInMB],
CAST(CAST (f.size / 128.0 - CAST (FILEPROPERTY(f.name, ''SpaceUsed'') AS INT) / 128.0 AS DECIMAL (15, 2)) * 100 / CAST ((f.size / 128.0) AS DECIMAL (15, 2)) AS DECIMAL (15, 2)) AS [PercentFree],
[file_id],
fg.name AS [FilegroupName]
FROM sys.database_files AS f WITH (NOLOCK)
LEFT OUTER JOIN
sys.data_spaces AS fg WITH (NOLOCK)
ON f.data_space_id = fg.data_space_id
OPTION (RECOMPILE);
'
SELECT
'DBCC SHRINKFILE (''' + FileName + ''' , 0)',
*
FROM #Stats
ORDER BY AvailableSpaceInMB DESC;
DROP TABLE #Stats;