sys.allocation_units (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Enthält eine Zeile für jede Zuordnungseinheit in der Datenbank.

Spaltenname Datentyp BESCHREIBUNG
allocation_unit_id bigint ID der Zuordnungseinheit. Ist innerhalb einer Datenbank eindeutig.
Typ tinyint Typ der Zuordnungseinheit:

0 = Gelöscht

1 = Daten in Zeilen (alle Datentypen mit Ausnahme von LOB-Datentypen)

2 = LOB-Daten (Large Object) (text, ntext, image, xml, große Werttypen und benutzerdefinierte CLR-Typen)

3 = Zeilenüberlaufdaten
type_desc nvarchar(60) Beschreibung des Typs der Zuordnungseinheit:

GELÖSCHT

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint ID des Speichercontainers, der der Zuordnungseinheit zugeordnet ist.

Wenn type = 1 oder 3 in einem Rowstore-Index container_id = sys.partitions.hobt_id.

Wenn typ = 1 oder 3 in einem Columnstore-Index, container_id = sys.column_store_row_groups.delta_store_hobt_id.

Wenn type = 2 ist, dann ist container_id = sys.partitions.partition_id.

0 = Für die verzögerte Löschung gekennzeichnete Zuordnungseinheit
data_space_id int ID der Dateigruppe, in der sich diese Zuordnungseinheit befindet.
total_pages bigint Gesamtanzahl der Seiten, die von dieser Zuordnungseinheit zugeordnet oder reserviert wurden.
used_pages bigint Gesamtanzahl der tatsächlich verwendeten Seiten.
data_pages bigint Anzahl verwendeter Seiten, die über Folgendes verfügen:

Daten in Zeilen

LOB-Daten

Zeilenüberlaufdaten



Beachten Sie, dass der zurückgegebene Wert interne Indexseiten und Zuordnungsverwaltungsseiten ausschließt.

Hinweis

Wenn Sie große Indizes löschen oder neu erstellen, große Tabellen löschen oder große Tabellen oder Partitionen abschneiden, verschiebt die Datenbank-Engine die tatsächlichen Seitenabsetzungen und die zugehörigen Sperren bis nach dem Commit der Transaktion. Bei verzögerten Löschvorgängen wird der zugeordnete Speicherplatz nicht sofort freigegeben. Daher spiegeln die von sys.allocation_units zurückgegebenen Werte sofort nach dem Löschen oder Abschneiden großer Objekte möglicherweise nicht den tatsächlich verfügbaren Speicherplatz wider.

Wenn die beschleunigte Datenbankwiederherstellung aktiviert ist, wird das verzögerte Löschen unabhängig von der Objektgröße verwendet.

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Bestimmen des vom Objekt verwendeten Speicherplatzes und typs einer Zuordnungseinheit

Die folgende Abfrage gibt alle Benutzertabellen in einer Datenbank und den jeweils verwendeten Speicherplatz nach Zuordnungseinheitstyp zurück.

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;

Weitere Informationen

sys.partitions (Transact-SQL)
Katalogsichten für Objekte (Transact-SQL)
Katalogsichten (Transact-SQL)