sys.allocation_units (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance SQL-Datenbank in Microsoft Fabric
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: ABGEWORFEN IN_ROW_DATA LOB_DATA ROW_OVERFLOW_DATA |
container_id | bigint | ID des Speichercontainers, der der Zuordnungseinheit zugeordnet ist. Wenn Typ = 1 oder 3 in einem Rowstore-Index container_id = sys.partitions.hobt_id. Wenn Typ = 1 oder 3 in einem Columnstore-Index ist, container_id = sys.column_store_row_groups.delta_store_hobt_id. Wenn typ 2 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 ablegen oder neu erstellen, große Tabellen ablegen oder große Tabellen oder Partitionen abschneiden, werden die Datenbank-Engine die tatsächlichen Seiten-Deallocations und die zugehörigen Sperren zurückstellen, bis nach dem Commit der Transaktion. Bei verzögerten Löschvorgängen wird der zugeordnete Speicherplatz nicht sofort freigegeben. Daher entsprechen die von sys.allocation_units zurückgegebenen Werte unmittelbar nach dem Ablegen oder Abschneiden eines großen Objekts möglicherweise nicht dem tatsächlich verfügbaren Speicherplatz.
Wenn die beschleunigte Datenbankwiederherstellung aktiviert ist, wird das verzögerte Ablegen 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 Raums 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)