Sdílet prostřednictvím


sys.allocation_units (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

Obsahuje řádek pro každou alokační jednotku v databázi.

Název sloupce Datový typ Description
allocation_unit_id bigint ID alokační jednotky. Je jedinečný v rámci databáze.
typ tinyint Typ alokační jednotky:

0 = Vyřazeno

1 = vložená data (všechny datové typy kromě datových typů LOB)

2 = data velkého objektu (LOB) (text, ntext, obrázek, xml, velké typy hodnot a uživatelsky definované typy CLR)

3 = data přetečení řádků
type_desc nvarchar(60) Popis typu alokační jednotky:

UPUŠTĚNÝ

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint ID kontejneru úložiště přidruženého k alokační jednotce.

Pokud typ = 1 nebo 3 v indexu rowstore container_id = sys.partitions.hobt_id.

Pokud typ = 1 nebo 3 v indexu columnstore, container_id = sys.column_store_row_groups.delta_store_hobt_id.

Pokud je typ 2, container_id = sys.partitions.partition_id.

0 = jednotka přidělení označená pro odložené poklesy
data_space_id int ID skupiny souborů, ve které se nachází tato alokační jednotka.
total_pages bigint Celkový počet stránek přidělených nebo vyhrazených touto alokační jednotkou
used_pages bigint Počet stránek celkem, které se skutečně používají
data_pages bigint Počet použitých stránek, které mají:

Data v řádku

LOB data

Data přetečení řádků



Všimněte si, že vrácená hodnota vylučuje interní indexové stránky a stránky správy přidělení.

Note

Když vyřadíte nebo znovu sestavíte velké indexy, zahodíte velké tabulky nebo oddíly, databázový stroj odblokuje skutečné přidělení stránky a jejich přidružené zámky, dokud se transakce potvrzení. Operace odloženého vyřazení nevyvolá přidělené místo okamžitě. Proto hodnoty vrácené sys.allocation_units okamžitě po vyřazení nebo zkrácení velkého objektu nemusí odrážet skutečné místo na disku dostupné.

Pokud je povolené zrychlené obnovení databáze , použije se odložené vyřazení bez ohledu na velikost objektu.

Permissions

Vyžaduje členství ve veřejné roli . Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Examples

Určení místa používaného objektem a typem alokační jednotky

Následující dotaz vrátí všechny uživatelské tabulky v databázi a množství místa použitého v každé z nich podle typu alokační jednotky.

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;

Viz také

sys.partitions (Transact-SQL)
zobrazení katalogu objektů (Transact-SQL)
zobrazení katalogu (Transact-SQL)