表中每行的平均大小

  本文源于桦仔的博文【计算数据库中各个表的数据量和每行记录所占用空间】

    然后利用T-SQL内置的存储过程【sp_MSforeachtable】作了相应的优化,它会自动遍历数据库中的所有用户表,这里的效果一样

    

复制代码
 1 CREATE TABLE #TableSpaceInfo
 2     (
 3       TableName VARCHAR(100) ,
 4       RowsCnt BIGINT ,
 5       Reserved VARCHAR(20) ,
 6       DataSize VARCHAR(20) ,
 7       IdxSize VARCHAR(20) ,
 8       Unused VARCHAR(20),
 9       AvgSpacePerRow  AS (CASE RowsCnt
10                             WHEN 0 THEN  CONVERT(NVARCHAR(20), CAST(0 AS MONEY), 1)
11                             ELSE CONVERT(NVARCHAR(20), ((CAST(REPLACE(DataSize, 'KB', '') AS MONEY) / CAST(RowsCnt AS MONEY))), 1)
12                        END) + ' KB'
13     )
14 
15 EXEC sp_MSforeachtable  @command1 = 'INSERT INTO #TableSpaceInfo
16                 EXEC SP_SPACEUSED ''?'''
17 
18 --每行占用的空间
19 SELECT * FROM #TableSpaceInfo ORDER BY AvgSpacePerRow DESC
20 
21 DROP TABLE #TableSpaceInfo
复制代码

 

posted @   丝滑课  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示