分享方式:


sys.allocation_units (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體

包含資料庫中每個配置單位的數據列。

資料行名稱 資料類型 描述
allocation_unit_id bigint 配置單位的標識碼。 在資料庫內是唯一的。
type tinyint 設定單位的類型:

0 = 已卸除

1 = 資料欄內資料(LOB 資料類型除外的所有資料類型)

2 = 大型物件 (LOB) 數據(textntextimagexml、large value types 和 CLR 使用者定義型別)

3 = 資料列溢位數據
type_desc nvarchar(60) 設定單位類型的描述:

下降

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint 與配置單位相關聯的記憶體容器標識碼。

如果 type = 1 或 3 在數據列存放區索引中,container_id = sys.partitions.hobt_id。

如果數據行存放區索引中的 type = 1 或 3,container_id = sys.column_store_row_groups.delta_store_hobt_id。

如果 type 為 2,則container_id = sys.partitions.partition_id。

0 = 標示為延遲卸除的配置單位
data_space_id int 這個配置單位所在的檔案群組標識碼。
total_pages bigint 此配置單位所配置或保留的頁面總數。
used_pages bigint 實際使用的總頁數。
data_pages bigint 已使用的頁面數目:

同資料列資料

LOB 資料

資料列溢位資料



請注意,傳回的值會排除內部索引頁和配置管理頁面。

注意

當您卸除或重建大型索引、卸除大型數據表或截斷大型數據表或分割區時,資料庫引擎 會延遲實際的頁面解除分配及其相關聯的鎖定,直到交易認可之後。 延遲卸除作業不會立即釋放已配置的空間。 因此,卸除或截斷大型物件之後,sys.allocation_units所傳回的值可能不會反映可用的實際磁碟空間。

啟用加速資料庫復原,不論物件大小為何,都會使用延後卸除。

權限

需要 public 角色的成員資格。 如需相關資訊,請參閱 Metadata Visibility Configuration

範例

判斷物件和配置單位類型所使用的空間

下列查詢會依配置單位類型傳回資料庫中的所有用戶數據表,以及每個資料庫中所使用的空間量。

SELECT t.object_id AS ObjectID,
       OBJECT_NAME(t.object_id) AS ObjectName,
       SUM(u.total_pages) * 8 AS Total_Reserved_kb,
       SUM(u.used_pages) * 8 AS Used_Space_kb,
       u.type_desc AS TypeDesc,
       MAX(p.rows) AS RowsCount
FROM sys.allocation_units AS u
JOIN sys.partitions AS p ON u.container_id = p.hobt_id
JOIN sys.tables AS t ON p.object_id = t.object_id
GROUP BY t.object_id,
         OBJECT_NAME(t.object_id),
         u.type_desc
ORDER BY Used_Space_kb DESC,
         ObjectName;

另請參閱

sys.partitions (Transact-SQL)
物件目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)