SQL SERVER 查询所有表大小

转自:https://www.cnblogs.com/Bokeyan/p/12027475.html

DECLARE @T TABLE
(
[name] VARCHAR(max),
[rows] INT,
reserved VARCHAR(max),
data_size VARCHAR(max),
index_size VARCHAR(max),
unused VARCHAR(max)
)

--将表占用情况存放到表变量
INSERT INTO @T
EXEC sp_MSforeachtable "exec sp_spaceused '?'"

SELECT TOP 20 [name],[rows],reserved,data_size,index_size,unused,
CAST(REPLACE(reserved,'KB','') AS INT)/1024 as reserved_MB,
CAST(REPLACE([data_size],'KB','') AS INT)/1024 as data_size_MB,--数据大小
CAST(REPLACE([index_size],'KB','') AS INT)/1024 as index_size_MB,
CAST(REPLACE([unused],'KB','') AS INT)/1024 as unused_MB
FROM @T
order by CAST(REPLACE(reserved,'KB','') AS INT) desc

posted @ 2024-03-02 14:35  一心想退休  阅读(131)  评论(0)    收藏  举报