简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)

来源:互联网 发布:ubuntu虚拟机增加硬盘 编辑:程序博客网 时间:2024/05/22 08:16
在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。

/**//*
1. exec sp_spaceused '表名'            (SQL统计数据,大量事务操作后可能不准)
2. exec sp_spaceused '表名', true       (更新表的空间大小,准确的表空大小,但可能会花些统计时间)
3. exec sp_spaceused                    (数据库大小查询)
4. exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准)
5. exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用户表空间表小,大数据库慎用)
*/


createtable #t(namevarchar(255), rowsbigint, reservedvarchar(20), datavarchar(20), index_sizevarchar(20), unusedvarchar(20))
exec sp_MSforeachtable "insertinto #t exec sp_spaceused '?'"
select* from #t
droptable #t

另外还有sp_MSforeachdb可以遍历所有数据库,使用方法详见SQL帮助。

数据库技术就是一坛陈年老酒,越久越香,学以致用。
原创粉丝点击