sys.dm_db_xtp_checkpoint_files (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure 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_idsys.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 Standard als FREE enthalten sind, stehen zur Zuweisung zur Verfügung. 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_filesSQL 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_idsys.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 BERECHTIGUNG "DATENBANKLEISTUNGSSTATUS ANZEIGEN" 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;