1. 程式人生 > >SqlServer查看錶大小

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 '?'"