在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” (所有用戶表空間表小,大數據庫慎用)
create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable “insert into #t exec sp_spaceused ‘?’”
select * from #t
drop table #t
另外還有sp_MSforeachdb可以遍歷所有數據庫,使用方法詳見SQL幫助。