查看SqlServer 數據庫中各個表多少行 :
SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC
數據庫磁盤占用量:
select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS nvarchar)+'MB' AS CP from CDR.dbo.sysfiles
where name = 'CDR'
==================================
以下是sp_spaceused和sp_MSforeachtable具體的使用示例:
exec sp_spaceused '表名' (查詢表所占空間)
exec sp_spaceused '表名', true (更新表的空間大小,准確的表空大小)
exec sp_spaceused (數據庫大小查詢)
exec sp_MSforeachtable "exec sp_spaceused '?'" (所有用戶表空間表小,SQL統計數據,,大量事務操作后可能不准)
exec sp_MSforeachtable "exec sp_spaceused '?',true" (所有用戶表空間表小,大數據庫慎用)
====================詳細版============================
做一個項目,第一件事情就是問:“這個數據庫多大?”
下面是統計數據庫數據量大小的方法
通常我們會使用命令: "sp_helpdb @dbname"
例如,查詢數據庫"testdb3"的使用量
exec sp_helpdb testdb3
"sp_helpdb"是最常用的命令,
但是注意:該命令顯示的數據庫大小"db_size"並不是指現存有效數據的大小,而是指:數據庫物理文件 “數據文件大小 + 日志文件大小”的總和
例如上例中,數據庫"testdb3"對應的數據文件和日志文件:
218.112 + 916.352 = 1107.88MB
數據庫創始之初,數據文件和日志文件的初始大小都是默認的2M或3M
當插入數據后,數據文件和日志文件的大小會隨着數據量的增長而增長
但是當刪除數據的時候,會發生什么情況呢?
數據文件、日志文件會變小么?不會的,還是保持原來的大小
怎樣獲取有效數據的大小?
答案是使用"sp_spaceused"存儲過程分別統計每張表的數據量
1) 統計單個表的使用空間
exec sp_spaceused 'dbo.t1'
2) 統計每個表的使用空間
exec sp_MSforeachtable "exec sp_spaceused '?'"
---------------------
版權聲明:本文為CSDN博主「Architect_csdn」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/architect_csdn/article/details/89223308