评估插入会增长的页级空间
发布日期:2021-11-11 09:16:09 浏览次数:2 分类:技术文章

本文共 2984 字,大约阅读时间需要 9 分钟。

1 ;WITH NonClustedIndexColumn AS 2 ( 3     SELECT dataid,column_id,c.object_id, MAX(c.dataneme) dataneme FROM  4     sys.index_columns  d 5     INNER JOIN (SELECT index_id dataid,name dataneme ,* FROM sys.indexes WHERE index_id > 1 6                 UNION ALL  7                 SELECT a.index_id dataid,a.name dataneme, b.* FROM sys.indexes a 8                 INNER JOIN sys.indexes b ON a.object_id = b.object_id AND b.index_id = 1  9      ) c ON c.object_id  = d.object_id  AND d.index_id = c.index_id10      GROUP BY dataid,column_id,c.object_id11 ),NonClustedIndexSize12 AS(13 SELECT --a.name,a.max_length,b.name,c.index_id14      OBJECT_NAME(a.object_id) name ,a.object_id,MAX(c.dataneme) index_name, c.dataid15     ,SUM(CASE WHEN b.name IN ('varchar','nvarchar') THEN 2+a.max_length ELSE 0 END) [Variable_Data]16     ,SUM(CASE WHEN b.name not IN ('varchar','nvarchar') THEN a.max_length ELSE 0 END) [Fixed_Data]17     ,CEILING(SUM(CASE WHEN a.is_nullable = 1 THEN 1 ELSE 0 END)*1.0 /8) [NullByte]        18     ,CASE WHEN c.dataid <=1 THEN 2 ELSE 1 END [RowHeader]19     ,CASE WHEN c.dataid <=1 THEN 2 ELSE 0 END [Fixed_Length]20     ,MAX( CASE WHEN b.name IN ('varchar','nvarchar')  THEN 2 ELSE 0 END) [Variable_Length]21     , 2 [Column_Count]22 FROM sys.columns a23     INNER JOIN sys.types b ON a.user_type_id = b.user_type_id24     INNER JOIN NonClustedIndexColumn c ON a.object_id = c.object_id AND a.column_id = c.column_id25 WHERE a.object_id >100 AND dataid > 1 -- AND OBJECT_NAME(a.object_id) = 'userorder_package'26  GROUP BY a.object_id,c.dataid27  )28 , ClustedHeapSize AS(29 SELECT --a.name,a.max_length,b.name,c.index_id30      OBJECT_NAME(a.object_id) name ,a.object_id,MAX(c.name) index_name, c.index_id31     ,SUM(CASE WHEN b.name IN ('varchar','nvarchar') THEN 2+a.max_length ELSE 0 END) [Variable_Data]32     ,SUM(CASE WHEN b.name not IN ('varchar','nvarchar') THEN a.max_length ELSE 0 END) [Fixed_Data]33     ,CEILING(SUM(CASE WHEN a.is_nullable = 1 THEN 1 ELSE 0 END)*1.0 /8) [NullByte]        34     ,CASE WHEN c.index_id <=1 THEN 2 ELSE 1 END [RowHeader]35     ,CASE WHEN c.index_id <=1 THEN 2 ELSE 0 END [Fixed_Length]36     ,MAX( CASE WHEN b.name IN ('varchar','nvarchar')  THEN 2 ELSE 0 END) [Variable_Length]37     , 2 [Column_Count]38 FROM sys.columns a39     INNER JOIN sys.types b ON a.user_type_id = b.user_type_id40     INNER JOIN sys.indexes c ON c.object_id  = a.object_id  --AND d.index_id = c.index_id41 WHERE a.object_id >100 AND c.index_id <= 142  GROUP BY a.object_id,c.index_id )43 ,RowSize AS44 (45     SELECT name = MAX(name),OBJECT_ID,rowsize=SUM([Variable_Data]+[Fixed_Data]+[NullByte]+[RowHeader]+[Fixed_Length]+[Variable_Length]+[Column_Count])46     FROM (47         SELECT * FROM NonClustedIndexSize48         UNION ALL49         SELECT * FROM ClustedHeapSize50     ) a51     GROUP BY OBJECT_ID52 )53 54 SELECT * FROM rowsize

 

posted on
2013-11-04 15:40  阅读(
...) 评论(
...) 收藏

转载于:https://www.cnblogs.com/Amaranthus/p/3406674.html

转载地址:https://blog.csdn.net/dida4700/article/details/101644470 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:[20131122]奇怪的死锁
下一篇:[20131014] 出现错误,显示事务没有回滚

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月20日 04时35分43秒