博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的语句统计所有用户表尺寸大小
阅读量:6279 次
发布时间:2019-06-22

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

参考SQL2005, 2008和2012的系统存储过程master.sys.sp_spaceused代码后,写了下面一条语句来方便平时统计所有用户表尺寸大小。

可以结合sp_MSforeachdb再遍历所有用户数据库查看所有表的尺寸大小,注意它的参数@sql不能超过nvarchar(2000),这里就不贴出代码了。
另外还可以定期运行并将结果保存下来,以便观察数据变化趋势。 

 

查询单个数据库的所有用户表尺寸大小:

Select @@servername as ServerName,db_name() as DBName ,object_id as ObjectID, schema_name(schema_id) as SchName, name as TableName	,Rowcnt as Rows,Columns,Indexes,RowLength	,ReservedKb, TableUsedKb	,UsedKb-TableUsedKb as IndexUsedKb,ReservedKb-UsedKb as UnusedKb	,create_date as CreateDate,modify_date as LastModifiedDate, getutcdate() as TrackingUTCTimeFrom(select	object_id	,schema_id	,name 	,(Select max(row_count) from sys.dm_db_partition_stats p with(nolock) where p.object_id=t.object_id and p.index_id < 2)  as Rowcnt	,(Select Count(1) from dbo.syscolumns with(nolock) where id = t.object_id) as Columns	,(Select Count(distinct index_id) from sys.dm_db_partition_stats p with(nolock) where p.object_id=t.object_id) as Indexes	,(SELECT SUM(length) FROM dbo.syscolumns with(nolock) WHERE id = t.object_id) as RowLength	,IsNull((Select SUM(reserved_page_count) from sys.dm_db_partition_stats p with(nolock) where p.object_id=t.object_id),0)*8		+ IsNull((Select sum(reserved_page_count)				FROM sys.dm_db_partition_stats p2 with(nolock)				inner join sys.internal_tables it with(nolock) on p2.object_id = it.object_id				WHERE it.parent_id = t.object_id 						AND it.internal_type IN (202,204,207,211,212,213,214,215,216,221,222,236)),0)* 8 as ReservedKb	,IsNull((Select SUM(in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)				 from sys.dm_db_partition_stats p with(nolock) where p.object_id=t.object_id and p.index_id < 2),0)* 8 as TableUsedKb	,IsNull((Select SUM(used_page_count) from sys.dm_db_partition_stats p with(nolock) where p.object_id=t.object_id),0)*8		+ IsNull((Select sum(used_page_count)				FROM sys.dm_db_partition_stats p2 with(nolock)				inner join sys.internal_tables it with(nolock) on p2.object_id = it.object_id				WHERE it.parent_id = t.object_id 						AND it.internal_type IN (202,204,207,211,212,213,214,215,216,221,222,236)),0)* 8 as UsedKb	,create_date	,modify_datefrom sys.tables t with(nolock) where Type='U') Aorder by ReservedKb desc

 

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

你可能感兴趣的文章
github 上 机器学习 的库推荐列表
查看>>
C# 时间戳与DateTime互转
查看>>
js-关于性能优化的一些学习总结
查看>>
PHP设定错误和异常处理三函数
查看>>
SqlServer中用SQL语句附加数据库及修改数据库逻辑文件名
查看>>
DVI-A、DVI-D、DVI-I接口定义、DVI接口图和DVI接口标准介绍
查看>>
DS Tree 已知后序、中序 => 建树 => 求先序
查看>>
C#通过代码调用PowerShell
查看>>
c# MongoDB 经纬度应用示例
查看>>
C语言 · 特殊回文数
查看>>
Displaying Modal Window Messages in Oracle Forms Using Show_Alert
查看>>
如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。...
查看>>
CSRF攻击
查看>>
HTTP 请求头中的 X-Forwarded-For
查看>>
使用axis2 soapmonitor监控soap数据
查看>>
百度eCharts体验
查看>>
线程高级应用-心得9-空中网的三道面试题,考察应试者的线程掌握的深度
查看>>
新建一个兼容eclipse和myeclipse、IDEA都兼容的项目结构(maven)
查看>>
小程序二维码解码
查看>>
How To: Implement a Major Upgrade In Your Installer
查看>>