sys.dm_db_xtp_checkpoint_files (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Zeigt Informationen zu OLTP-Prüfpunktdateien im Arbeitsspeicher an, einschließlich Dateigröße, physischem Speicherort und Transaktions-ID.
Hinweis
Für den aktuellen Prüfpunkt, der nicht geschlossen wurde, befindet sich die Statusspalte sys.dm_db_xtp_checkpoint_files
unter KONSTRUKTION für neue Dateien. Ein Prüfpunkt wird automatisch geschlossen, wenn seit dem letzten Prüfpunkt genügend Transaktionsprotokollwachstum vorhanden ist oder wenn Sie den CHECKPOINT
Befehl ausstellen. Weitere Informationen finden Sie unter CHECKPOINT (Transact-SQL).
Eine speicheroptimierte Dateigruppe verwendet intern Nur-Anfügedateien, um eingefügte und gelöschte Zeilen für Speichertabellen zu speichern. Es gibt zwei Typen von Dateien. Eine Datendatei enthält eingefügte Zeilen, während eine Delta-Datei Verweise auf gelöschte Zeilen enthält.
SQL Server 2014 (12.x) unterscheidet sich erheblich von neueren Versionen und wird in SQL Server 2014 erläutert.
Weitere Informationen finden Sie unter Erstellen und Verwalten von Speicher für speicheroptimierte Objekte.
SQL Server 2016 (13.x) und höher
In der folgenden Tabelle werden die Spalten für sys.dm_db_xtp_checkpoint_files
, beginnend mit SQL Server 2016 (13.x) beschrieben.
Spaltenname | type | Beschreibung |
---|---|---|
container_id | int | Die ID des Containers (dargestellt als Datei mit dem Typ FILESTREAM in sys.database_files ), zu denen die Daten oder Delta-Datei gehören. Wird mit file_id sys.database_files (Transact-SQL) verknüpft. |
container_guid | uniqueidentifier | GUID des Containers, von dem die Stamm-, Daten- oder Delta-Datei Teil ist. Verknüpft file_guid mit der sys.database_files Tabelle. |
checkpoint_file_id | uniqueidentifier | GUID der Prüfpunktdatei. |
relative_file_path | nvarchar(256) | Der Pfad der Datei relativ zum Container, dem sie zugeordnet ist. |
file_type | smallint | -1 kostenlos 0 für DATA-Datei. 1 für DELTA-Datei. 2 für STAMMdatei 3 für GROßE DATENdatei |
file_type_desc | nvarchar(60) | FREE- Alle Dateien, die als FREE verwaltet werden, sind für die Zuweisung verfügbar. Kostenlose Dateien können je nach erwarteten Anforderungen vom System variieren. Die maximale Größe beträgt 1 GB. DATA – Datendateien enthalten Zeilen, die in speicheroptimierte Tabellen eingefügt wurden. DELTA – Delta-Dateien enthalten Verweise auf Zeilen in Datendateien, die gelöscht wurden. ROOT – Stammdateien enthalten Systemmetadaten für speicheroptimierte und systemeigene kompilierte Objekte. LARGE DATA - Große Datendateien enthalten Werte, die in (n)varchar(max) und varbinary(max)-Spalten eingefügt wurden, sowie die Spaltensegmente, die Teil von Spaltenspeicherindizes in speicheroptimierten Tabellen sind. |
internal_storage_slot | int | Der Index der Datei im internen Speicherarray. NULL für ROOT oder für einen anderen Zustand als 1 . |
checkpoint_pair_file_id | uniqueidentifier | Entsprechende DATA- oder DELTA-Datei. NULL für ROOT. |
file_size_in_bytes | bigint | Größe der Datei auf dem Datenträger. |
file_size_used_in_bytes | bigint | Bei Prüfpunktdateipaaren, die noch mit Daten aufgefüllt werden, wird diese Spalte nach dem nächsten Prüfpunkt aktualisiert. |
logical_row_count | bigint | Für "Daten" wird die Anzahl der eingefügten Zeilen angezeigt. Bei Delta wird die Anzahl der nach der Ablagetabelle gelöschten Zeilen gelöscht. Für Stamm, NULL. |
state | smallint | 0 – VORKONKREMENTIERT 1 - IM BAU BEFINDLICHE 2 - ACTIVE 3 – ZUSAMMENFÜHREN DES ZIELS 8 – WARTEN AUF PROTOKOLLABKÜRZUNG |
state_desc | nvarchar(60) | PRECREATED – Eine Reihe von Prüfpunktdateien wird vorgezogen, um wartezeiten zu minimieren oder zu beseitigen, um neue Dateien zuzuweisen, während Transaktionen ausgeführt werden. Diese Dateien können in der Größe variieren und je nach geschätzten Anforderungen der Workload erstellt werden. Sie enthalten keine Daten. Dies ist ein Speicheraufwand in Datenbanken mit einer MEMORY_OPTIMIZED_DATA Dateigruppe. UNDER CONSTRUCTION - Diese Prüfpunktdateien sind im Bau, d. h., sie werden basierend auf den Protokolldatensätzen, die von der Datenbank generiert werden, aufgefüllt und sind noch nicht Teil eines Prüfpunkts. ACTIVE – Diese enthalten die eingefügten/gelöschten Zeilen aus vorherigen geschlossenen Prüfpunkten. Sie enthalten den Inhalt der Tabellen, die in den Arbeitsspeicher eingelesen werden, bevor sie den aktiven Teil des Transaktionsprotokolls beim Neustart der Datenbank anwenden. Wir erwarten, dass die Größe dieser Prüfpunktdateien ungefähr 2x der Speichergröße von speicheroptimierten Tabellen beträgt, vorausgesetzt, der Zusammenführungsvorgang hält die Transaktionsarbeitsauslastung bei. MERGE TARGET – Das Ziel von Zusammenführungsvorgängen – diese Prüfpunktdateien speichern die konsolidierten Datenzeilen aus den Quelldateien, die durch die Zusammenführungsrichtlinie identifiziert wurden. Nachdem die Zusammenführung installiert wurde, befinden sich die MERGE TARGET-Übergänge im Status ACTIVE. WARTEN AUF LOG TRUNCATION - Sobald der Seriendruck installiert wurde und das MERGE TARGET-FFP Teil des dauerhaften Prüfpunkts ist, übergehen die Seriendruckquellprüfpunktedateien in diesen Zustand. Dateien in diesem Zustand sind für die Betriebskorrektur der Datenbank mit speicheroptimierter Tabelle erforderlich. Dies gilt beispielsweise für die Wiederherstellung von einem dauerhaften Prüfpunkt, um zu einem früheren Zustand zurückzukehren. |
lower_bound_tsn | bigint | Untergrenze der Transaktion in der Datei; NULL if state not in (1, 3). |
upper_bound_tsn | bigint | Obere Grenze der Transaktion in der Datei; NULL if state not in (1, 3). |
begin_checkpoint_id | bigint | ID des Anfangsprüfpunkts. |
end_checkpoint_id | bigint | ID des Endprüfpunkts. |
last_updated_checkpoint_id | bigint | ID des letzten Prüfpunkts, der diese Datei aktualisiert hat. |
encryption_status | smallint | 0, 1, 2 |
encryption_status_desc | nvarchar(60) | 0 => UNVERSCHLÜSSELT 1 => VERSCHLÜSSELT MIT SCHLÜSSEL 1 2 => VERSCHLÜSSELT MIT SCHLÜSSEL 2. Nur für aktive Dateien gültig. |
SQL Server 2014 (12.x)
In der folgenden Tabelle werden die Spalten für sys.dm_db_xtp_checkpoint_files
SQL Server 2014 (12.x) beschrieben.
Spaltenname | type | Beschreibung |
---|---|---|
container_id | int | Die ID des Containers (dargestellt als Datei mit dem Typ FILESTREAM in sys.database_files ), zu denen die Daten oder Delta-Datei gehören. Wird mit file_id sys.database_files (Transact-SQL) verknüpft. |
container_guid | uniqueidentifier | Die GUID des Containers, dem die Daten- oder Änderungsdatei angehört. |
checkpoint_file_id | GUID | Die ID der Daten- oder Änderungsdatei. |
relative_file_path | nvarchar(256) | Der Pfad zu der Daten- oder Änderungsdatei relativ zum Speicherort des Containers. |
file_type | tinyint | 0 für die Datendatei. 1 für die Änderungsdatei. NULL wenn die Statusspalte auf 7 festgelegt ist. |
file_type_desc | nvarchar(60) | Der Dateityp: DATA_FILE, DELTA_FILE oder NULL wenn die Statusspalte auf 7 festgelegt ist. |
internal_storage_slot | int | Der Index der Datei im internen Speicherarray. NULL wenn die Statusspalte nicht 2 oder 3 ist. |
checkpoint_pair_file_id | uniqueidentifier | Die entsprechende Daten- oder Änderungsdatei. |
file_size_in_bytes | bigint | Die Größe der Datei, die verwendet wird. NULL wenn die Statusspalte auf 5, 6 oder 7 festgelegt ist. |
file_size_used_in_bytes | bigint | Die verwendete Größe der betreffenden Datei. NULL wenn die Statusspalte auf 5, 6 oder 7 festgelegt ist.Bei Prüfpunktdateipaaren, die noch mit Daten aufgefüllt werden, wird diese Spalte nach dem nächsten Prüfpunkt aktualisiert. |
inserted_row_count | bigint | Die Anzahl der Zeilen in der Datendatei. |
deleted_row_count | bigint | Die Anzahl der gelöschten Zeilen in der Änderungsdatei. |
drop_table_deleted_row_count | bigint | Die Anzahl der Zeilen in den Datendateien, auf die sich die Tabellenlöschung auswirkt. Gilt für Datendateien, wenn die Zustandsspalte gleich 1 ist. Zeigt die Anzahl der aus gelöschten Tabellen gelöschten Zeilen an. Statistiken drop_table_deleted_row_count werden kompiliert, nachdem die Arbeitsspeicher-Garbage Collection für die Zeilen aus gelöschten Tabellen abgeschlossen und ein Prüfpunkt erstellt wurde. Wenn Sie SQL Server neu starten, bevor die Drop-Tabellen-Statistiken in dieser Spalte angezeigt werden, werden die Statistiken im Rahmen der Wiederherstellung aktualisiert. Bei der Wiederherstellung werden keine Zeilen aus gelöschten Tabellen geladen. Statistiken zu gelöschten Tabellen werden während der Ladephase kompiliert und in dieser Spalte wiedergegeben, sobald die Wiederherstellung abgeschlossen ist. |
state | int | 0 – VORKONKREMENTIERT 1 - IM BAU BEFINDLICHE 2 - ACTIVE 3 – ZUSAMMENFÜHREN DES ZIELS 4 – ZUSAMMENGEFÜHRTE QUELLE 5 - ERFORDERLICH FÜR SICHERUNG/HA 6 - IM ÜBERGANG ZU TOMBSTONE 7 - TOMBSTONE |
state_desc | nvarchar(60) | PRECREATED - Eine kleine Gruppe von Daten- und Delta-Dateipaaren, auch als Prüfpunktdateipaare (CFPs) bezeichnet, werden vorgehalten, um alle Wartezeiten zu minimieren oder zu beseitigen, um neue Dateien zuzuweisen, da Transaktionen ausgeführt werden. Sie werden mit einer Datendateigröße von 128 MB und einer Delta-Dateigröße von 8 MB erstellt, enthalten jedoch keine Daten. Die Anzahl der CFPs wird aus der Anzahl von logischen Prozessoren oder Zeitplanungsmodulen (einer pro Kern, kein Höchstwert) berechnet und beträgt mindestens 8. Dies ist ein fester Speichermehraufwand in Datenbanken mit speicheroptimierten Tabellen. UNDER CONSTRUCTION - Satz von CFPs, die neu eingefügte und möglicherweise gelöschte Datenzeilen seit dem letzten Prüfpunkt speichern. ACTIVE – Diese enthalten die eingefügten und gelöschten Zeilen aus den vorherigen geschlossenen Prüfpunkten. Diese CFPs enthalten alle erforderlichen eingefügten und gelöschten Zeilen, bevor der aktive Teil des Transaktionsprotokolls beim Neustart der Datenbank angewendet wird. Die Größe dieser CFPs beträgt ungefähr zwei Mal die Speichergröße von speicheroptimierten Tabellen, vorausgesetzt, der Zusammenführungsvorgang ist mit der transaktionsbezogenen Workload aktuell. MERGE TARGET – Die GFP speichert die konsolidierten Datenzeilen aus den GFP(en), die durch die Zusammenführungsrichtlinie identifiziert wurden. Nachdem die Zusammenführung installiert wurde, befinden sich die MERGE TARGET-Übergänge im Status ACTIVE. ZUSAMMENGEFÜHRTE QUELLE – Sobald der Zusammenführungsvorgang installiert wurde, werden die Quell-CFPs als ZUSAMMENGEFÜHRTE QUELLE markiert. Beachten Sie, dass die Auswertung der Zusammenführungsrichtlinie möglicherweise mehrere Zusammenführungen identifiziert, aber eine GFP kann nur an einem Zusammenführungsvorgang teilnehmen. ERFORDERLICH FÜR SICHERUNG/HA – Sobald der Seriendruck installiert wurde und das MERGE TARGET CFP Teil des dauerhaften Prüfpunkts ist, übergehen die CFPs der Zusammenführungsquelle in diesen Zustand. CFPs in diesem Zustand werden benötigt, um die nahtlose Verwendung der Datenbank mit der speicheroptimierten Tabelle sicherzustellen. Dies gilt beispielsweise für die Wiederherstellung von einem dauerhaften Prüfpunkt, um zu einem früheren Zustand zurückzukehren. Ein CFP kann für die Garbage Collection gekennzeichnet werden, sobald der Protokollkürzungspunkt hinter dem Transaktionsbereich liegt. IN TRANSITION TO TOMBSTONE - Diese CFPs werden vom In-Memory OLTP-Modul nicht benötigt und können garbage collection werden. Dieser Status gibt an, dass diese CFPs warten, bis sie vom Hintergrundthread in den nächsten Zustand (d. h. TOMBSTONE) versetzt werden. TOMBSTONE – Diese CFPs warten darauf, dass die Garbage Collection durch den Dateistream Garbage Collector gesammelt wird. (sp_filestream_force_garbage_collection (Transact-SQL)) |
lower_bound_tsn | bigint | Die untere Grenze für Transaktionen, die in der Datei enthalten sind. NULL wenn die Statusspalte nicht 2, 3 oder 4 ist. |
upper_bound_tsn | bigint | Die obere Grenze für Transaktionen, die in der Datei enthalten sind. NULL wenn die Statusspalte nicht 2, 3 oder 4 ist. |
last_backup_page_count | int | Die logische Seitenanzahl, die bei der letzten Sicherung bestimmt wird. Diese gilt, wenn die Zustandsspalte auf 2, 3, 4 oder 5 festgelegt ist. NULL wenn die Seitenanzahl nicht bekannt ist. |
delta_watermark_tsn | int | Die Transaktion des letzten Prüfpunkts, von dem in diese Änderungsdatei geschrieben wurde. Dies ist das Wasserzeichen der Änderungsdatei. |
last_checkpoint_recovery_lsn | nvarchar(23) | Die Wiederherstellungs-Protokollfolgenummer des letzten Prüfpunkts, von dem die Datei noch benötigt wird. |
tombstone_operation_lsn | nvarchar(23) | Die Datei wird gelöscht, sobald tombstone_operation_lsn hinter der Protokollfolgenummer des Protokollkürzungspunkts zurückfällt. |
logical_deletion_log_block_id | bigint | Gilt nur für Zustand 5. |
Berechtigungen
Erfordert die VIEW DATABASE STATE
-Berechtigung für die Datenbank.
Berechtigungen für SQL Server 2022 und höher
Erfordert die VIEW DATABASE PERFORMANCE STATE-Berechtigung für die Datenbank.
Anwendungsfälle
Sie können den gesamt von In-Memory OLTP verwendeten Speicher wie folgt schätzen:
-- total storage used by In-Memory OLTP
SELECT SUM (file_size_in_bytes)/(1024*1024) as file_size_in_MB
FROM sys.dm_db_xtp_checkpoint_files;
Führen Sie die folgende Abfrage aus, um eine Aufschlüsselung der Speicherauslastung nach Status und Dateityp anzuzeigen:
SELECT state_desc
, file_type_desc
, COUNT(*) AS [count]
, SUM(file_size_in_bytes) / 1024 / 1024 AS [on-disk size MB]
FROM sys.dm_db_xtp_checkpoint_files
GROUP BY state, state_desc, file_type, file_type_desc
ORDER BY state, file_type;
Zugehöriger Inhalt
- Einführung in speicheroptimierte Tabellen
- Speicheroptimierte Dynamische Tabellenverwaltungsansichten
- In-Memory OLTP –Übersicht und Nutzungsszenarien
- Optimieren der Leistung mithilfe von In-Memory-Technologien in Azure SQL-Datenbank
- Optimieren der Leistung mithilfe von In-Memory-Technologien in Azure SQL verwaltete Instanz