顯示行數、保留的磁盤空間以及當前數據庫中的表、索引視圖或 Service Broker 隊列所使用的磁盤空間,或顯示由整個數據庫保留和使用的磁盤空間。javascript
- [ @objname =] ' objname '
-
請求其空間使用信息的表、索引視圖或隊列的限定或非限定名稱。僅當指定限定對象名稱時,才須要使用引號。若是提供徹底限定對象名稱(包括數據庫名稱),則數據庫名稱必須是當前數據庫的名稱。java
若是未指定 objname,則返回整個數據庫的結果。數據庫
objname 的數據類型爲 nvarchar(776),默認值爲 NULL。架構
- [ @updateusage =] ' updateusage '
-
指示應運行 DBCC UPDATEUSAGE 以更新空間使用信息。當未指定 objname 時,將對整個數據庫運行該語句;不然,將對 objname 運行該語句。值能夠是 true 或 false。updateusage 的數據類型爲 varchar(5),默認值爲 false。ide
0(成功)或 1(失敗)this
若是省略 objname ,將返回如下結果集,以提供當前數據庫大小信息。spa
列名 | 數據類型 | 說明 |
---|---|---|
database_name日誌 |
nvarchar(128)code |
當前數據庫的名稱。 |
database_size |
varchar(18) |
當前數據庫的大小 (MB)。database_size 包括數據和日誌文件。 |
unallocated space |
varchar(18) |
未保留供數據庫對象使用的數據庫空間。 |
列名 | 數據類型 | 說明 |
---|---|---|
reserved |
varchar(18) |
由數據庫中對象分配的空間總量。 |
數據 |
varchar(18) |
數據使用的空間總量。 |
index_size |
varchar(18) |
索引使用的空間總量。 |
unused |
varchar(18) |
爲數據庫中的對象保留但還沒有使用的空間總量。 |
若是指定 objname,則將爲指定對象返回如下結果集。
列名 | 數據類型 | 說明 |
---|---|---|
name |
nvarchar(128) |
請求其空間使用信息的對象的名稱。 不返回對象的架構名稱。若是須要架構名稱,請使用 sys.dm_db_partition_stats 或 sys.dm_db_index_physical_stats 動態管理視圖獲取等價大小信息。 |
rows |
char(11) |
表中現有的行數。若是指定的對象是 Service Broker 隊列,該列將指示隊列中的消息數。 |
reserved |
varchar(18) |
爲 objname 保留的空間總量。 |
數據 |
varchar(18) |
objname 中的數據所使用的空間總量。 |
index_size |
varchar(18) |
objname 中的索引所使用的空間總量。 |
unused |
varchar(18) |
爲 objname 保留但還沒有使用的空間總量。 |
database_size 將始終大於 reserved + unallocated_space 之和,由於該值包括日誌文件的大小,而 reserved 和 unallocated_space 只考慮數據頁。
在這兩個結果集的 index_size 中,都包括了 XML 索引和全文索引使用的頁。當指定 objname 時,對象的 XML 索引和全文索引所使用的頁將計算在 reserved 和 index_size 結果中。
若是爲具備空間索引的數據庫或對象計算空間使用狀況,則空間大小列(例如 database_size、reserved 和 index_size)將包含空間索引的大小。
指定 updateusage 時,SQL Server 數據庫引擎將掃描數據庫中的數據頁,並根據每一個表所使用的存儲空間對 sys.allocation_units 和 sys.partitions 目錄視圖進行必要的更正。在某些狀況下(例如刪除索引後、表的空間信息不是當前信息時),須要執行該操做。updateusage 在大型表或數據庫上運行會花費一些時間。只有當懷疑所返回的值不正確,並且該進程對數據庫中的其餘用戶或進程沒有負面影響時,才應使用 updateusage。若是首選該進程,則能夠單獨運行 DBCC UPDATEUSAGE。
![]() |
---|
在刪除或從新生成大型索引時,或者在刪除或截斷大型表時,數據庫引擎將延遲實際頁釋放及其關聯鎖,直至事務提交完畢爲止。延遲的刪除操做不會當即釋放已分配的空間。所以,刪除或截斷一個大型對象後 sp_spaceused 隨即返回的值可能不會影響可用的實際磁盤空間。有關延遲分配的詳細信息,請參閱刪除並從新生成大型對象。
|
執行 sp_spaceused 的權限授予 public 角色。只有 db_owner 固定數據庫角色的成員能夠指定 @updateusage 參數。