常用脚本--查看数据库文件大小

复制代码
--============================================================================
--查看数据库文件大小
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
--============================================================================
复制代码

 

posted on   笑东风  阅读(640)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

点击右上角即可分享
微信分享提示