SQL SERVER 查询所有表大小


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
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM