--============================================================================ --查看数据库文件大小 SELECT DB_NAME(F.database_id) AS DBName, F.name AS LogicName, F.size*8/1024 AS SizeMB FROM sys.master_files F INNER JOIN sys.databases D ON D.database_id=F.database_id INNER JOIN sys.database_mirroring dm on D.database_id=dm.database_id AND (dm.mirroring_guid IS NULL OR dm.mirroring_role=1) WHERE F.database_id>4 ORDER BY SizeMB DESC --============================================================================
--============================================================================ --查看当前实例下各数据库数据文件中可收缩情况 --UnusedExtents 标示可以被shrink的分区数 DROP TABLE #T GO DROP TABLE #T1 GO CREATE TABLE #T ( DatabaseID INT, FileID INT, FileGroup INT, TotalExtents INT, UsedExtents INT, LogicName NVARCHAR(200), FilePath NVARCHAR(500) ) CREATE TABLE #T1 ( FileID INT, FileGroup INT, TotalExtents INT, UsedExtents INT, LogicName NVARCHAR(200), FilePath NVARCHAR(500) ) EXEC sp_MSforeachdb N' USE [?] DELETE FROM #T1 INSERT INTO #T1(FileID,FileGroup,TotalExtents,UsedExtents,LogicName,FilePath) EXEC(''DBCC SHOWFILESTATS'') INSERT INTO #T(DatabaseID,FileID,FileGroup,TotalExtents,UsedExtents,LogicName,FilePath) SELECT DB_ID(),FileID,FileGroup,TotalExtents,UsedExtents,LogicName,FilePath FROM #T1 ' SELECT DB_NAME(T.DatabaseID) AS DatabaseName, (T.TotalExtents-T.UsedExtents) AS UnusedExtents, * FROM #T AS T ORDER BY UnusedExtents DESC --============================================================================