SqlServer查看錶大小
以下是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 '?'"