sys.dm_db_file_space_usage (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt Informationen zur Speicherplatznutzung für jede Datendatei in der Datenbank zurück.
Hinweis
Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_db_file_space_usage
. Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
database_id |
smallint | Datenbank-ID In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers. |
file_id |
smallint | Die Datei-IDfile_id file_id wird in sys.dm_io_virtual_file_stats und dateiid in sys.sysfiles zugeordnet. |
filegroup_id |
smallint | Gilt für: SQL Server 2012 (11.x) und höhere Versionen. Die Dateigruppen-ID. |
total_page_count |
bigint | Gilt für: SQL Server 2012 (11.x) und höhere Versionen. Gesamtanzahl der Seiten in der Datendatei. |
allocated_extent_page_count |
bigint | Gilt für: SQL Server 2012 (11.x) und höhere Versionen. Gesamtanzahl der Seiten in den zugeordneten Umfangen in der Datendatei. |
unallocated_extent_page_count |
bigint | Die Gesamtzahl der Seiten in den nicht zugewiesenen Ausmaßen in der Datendatei. Nicht verwendete Seiten in zugewiesenen Umfangen sind nicht enthalten. |
version_store_reserved_page_count |
bigint | Gesamtzahl der Seiten in den gleichartigen Blöcken, die dem Versionsspeicher zugeordnet werden. Versionsspeicherseiten werden nie aus gemischten Blöcken zugeordnet. IAM-Seiten sind nicht enthalten, da sie immer aus gemischten Ausmaßen zugeordnet werden. PFS-Seiten sind dann enthalten, wenn sie aus einem einheitlichen Block zugeordnet werden. Weitere Informationen finden Sie unter sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count |
bigint | Gesamtzahl der Seiten, die aus gleichartigen Blöcken für Benutzerobjekte in der Datenbank zugeordnet werden. Nicht verwendete Seiten aus einem zugeordneten Block sind in der Gesamtzahl enthalten. IAM-Seiten sind nicht enthalten, da sie immer aus gemischten Ausmaßen zugeordnet werden. PFS-Seiten sind dann enthalten, wenn sie aus einem einheitlichen Block zugeordnet werden. Sie können die total_pages Spalte in der sys.allocation_units Katalogansicht verwenden, um die reservierte Seitenanzahl jeder Zuordnungseinheit im Benutzerobjekt zurückzugeben. Die total_pages Spalte enthält jedoch IAM-Seiten. |
internal_object_reserved_page_count |
bigint | Gesamtzahl der Seiten in gleichartigen Blöcken, die für interne Objekte in der Datei zugeordnet werden. Nicht verwendete Seiten aus einem zugeordneten Block sind in der Gesamtzahl enthalten. IAM-Seiten sind nicht enthalten, da sie immer aus gemischten Ausmaßen zugeordnet werden. PFS-Seiten sind dann enthalten, wenn sie aus einem einheitlichen Block zugeordnet werden. Es ist keine Katalogsicht bzw. kein dynamisches Verwaltungsobjekt vorhanden, die bzw. das die Seitenanzahl für jedes interne Objekt zurückgibt. |
mixed_extent_page_count |
bigint | Gesamtzahl der zugeordneten und nicht zugeordneten Seiten in zugeordneten gemischten Blöcken in der Datei. Gemischte Blöcke enthalten Seiten, die verschiedenen Objekten zugeordnet werden. Diese Gesamtzahl enthält alle IAM-Seiten in der Datei. |
modified_extent_page_count |
bigint | Gilt für: SQL Server 2016 (13.x) SP2 und höhere Versionen. Die Gesamtzahl der Seiten, die in zugewiesenen Umfangen der Datei seit der letzten vollständigen Datenbanksicherung geändert wurden. Die geänderte Seitenanzahl kann verwendet werden, um die Anzahl der differenziellen Änderungen in der Datenbank seit der letzten vollständigen Sicherung nachzuverfolgen, um zu entscheiden, ob differenzielle Sicherung erforderlich ist. |
pdw_node_id |
int | Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW) Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet. |
distribution_id |
int | Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW) Die eindeutige numerische ID, die der Verteilung zugeordnet ist. |
Hinweise
Die Anzahl von Seiten wird immer auf Blockebene angegeben. Daher sind Seitenanzahlswerte immer ein Vielfaches von acht. Die Blöcke, die GAM-Zuordnungsseiten (Global Allocation Map) und SGAM-Zuordnungsseiten (Shared Global Allocation Map) enthalten, werden gleichartigen Blöcken zugeordnet. Sie sind nicht in der zuvor beschriebenen Seitenanzahl enthalten. Weitere Informationen zu Seiten und Blöcken finden Sie im Handbuch zur Architektur von Seiten und Blöcken.
Der Inhalt des aktuellen Versionsspeichers befindet sich in sys.dm_tran_version_store. Versionsspeicherseiten werden auf der Dateiebene anstelle der Sitzungs- und Taskebene nachverfolgt, da es sich bei ihnen um globale Ressourcen handelt. Eine Sitzung kann Versionen generieren, aber die Versionen können nicht entfernt werden, wenn die Sitzung endet. Beim Cleanup des Versionsspeichers muss die am längsten ausgeführte Transaktion, die Zugriff auf die bestimmte Version benötigt, berücksichtigt werden. Die längst ausgeführte Transaktion im Zusammenhang mit der Versionsspeicherbereinigung kann durch Anzeigen der elapsed_time_seconds Spalte in sys.dm_tran_active_snapshot_database_transactions ermittelt werden.
Häufige Änderungen in der mixed_extent_page_count
Spalte können auf eine starke Verwendung von SGAM-Seiten hinweisen. In diesem Fall sind zahlreiche PAGELATCH_UP-Wartevorgänge enthalten, bei denen die Warteressource eine SGAM-Seite ist. Weitere Informationen finden Sie unter sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) und sys.dm_os_latch_stats (Transact-SQL).
Benutzerobjekte
Die folgenden Objekte sind in den Seitenzählern für Benutzerobjekte enthalten:
- Benutzerdefinierte Tabellen und Indizes
- Systemtabellen und -indizes
- Globale temporäre Tabellen und Indizes
- Lokale temporäre Tabellen und Indizes
- Tabellenvariablen
- In Tabellenwertfunktionen zurückgegebene Tabellen
Interne Objekte
Interne Objekte befinden sich nur in tempdb
. Die folgenden Objekte sind in den Seitenzählern für interne Objekte enthalten:
- Arbeitstabellen für Cursor- oder Spoolvorgänge und temporären LOB-Speicher (Large Object)
- Arbeitsdateien für Vorgänge wie z. B. Hashjoins
- Sortierläufe
Kardinalitäten von Beziehungen
From | Beschreibung | Beziehung |
---|---|---|
sys.dm_db_file_space_usage.database_id , file_id |
sys.dm_io_virtual_file_stats.database_id , file_id |
1:1 |
Berechtigungen
Für SQL Server 2019 (15.x) und frühere Versionen und SQL-verwaltete Instanz ist eine Berechtigung erforderlichVIEW SERVER STATE
.
In SQL Server 2022 (16.x) und höheren Versionen ist die BERECHTIGUNG VIEW SERVER PERFORMANCE STATE auf dem Server erforderlich.
Für die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos oder die Mitgliedschaft in der ##MS_ServerStateReader##
Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE
-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##
-Serverrolle erforderlich.
Beispiele
Bestimmen der Menge des freien Speicherplatzes in tempdb
Die folgende Abfrage gibt die Gesamtanzahl der freien Seiten und den gesamten freien Speicherplatz in Megabyte (MB) zurück, der in allen Datendateien tempdb
verfügbar ist.
USE tempdb;
GO
SELECT
SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count) * 1.0 / 128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Bestimmen des von Benutzerobjekten verwendeten Speicherplatzes
Die folgende Abfrage gibt die Gesamtanzahl der von Benutzerobjekten verwendeten Seiten und den Gesamtraum zurück, der tempdb
von Benutzerobjekten verwendet wird.
USE tempdb;
GO
SELECT
SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count) * 1.0 / 128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;