sys.dm_db_xtp_checkpoint_files (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Visar information om In-Memory OLTP-checkpointfiler, inklusive filstorlek, fysisk plats och transaktions-ID.

Anmärkning

För den nuvarande kontrollpunkten som inte har stängts kommer statuskolumnen för sys.dm_db_xtp_checkpoint_files att vara UNDER KONSTRUKTION för nya filer. En kontrollpunkt stängs automatiskt när det finns tillräcklig tillväxt i transaktionsloggen sedan senaste kontrollpunkten, eller om du ger kommandot CHECKPOINT . Mer information finns i CHECKPOINT (Transact-SQL).

En minnesoptimerad filgrupp använder internt endast tilläggsfiler för att lagra insatta och raderade rader för minnestabeller. Det finns två typer av filer. En datafil innehåller insatta rader medan en deltafil innehåller referenser till raderade rader.

SQL Server 2014 (12.x) skiljer sig väsentligt från nyare versioner och diskuteras i SQL Server 2014.

För mer information, se Skapa och hantera lagring för Memory-Optimized objekt.

SQL Server 2016 (13.x) och senare

Följande tabell beskriver kolumnerna för sys.dm_db_xtp_checkpoint_files, med början i SQL Server 2016 (13.x).

Kolumnnamn Typ Description
container_id int Containerns ID (representerat som en fil med typen FILESTREAM i sys.database_files) som data- eller delta-filen tillhör. Ansluter sig till file_idsys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID för containern, som root-, data- eller delta-filen ingår i. Ansluter till file_guid bordet sys.database_files .
checkpoint_file_id uniqueidentifier GUID för checkpoint-filen.
relative_file_path nvarchar(256) Filen är sökväg i förhållande till containern den mappas till.
file_type smallint -1 GRATIS

0 för DATA-filen.

1 för DELTA-filen.

2 för ROOT-filen

3 för BIG DATA-filen
file_type_desc nvarchar(60) GRATIS – Alla filer som underhålls som GRATIS är tillgängliga för allokering. Gratis filer kan variera i storlek beroende på systemets förväntade behov. Maxstorleken är 1 GB.

DATA - Datafiler innehåller rader som har infogats i minnesoptimerade tabeller.

DELTA - Delta-filer innehåller referenser till rader i datafiler som har raderats.

ROOT - Rotfiler innehåller systemmetadata för minnesoptimerade och inbyggt kompilerade objekt.

STORA DATA – Stora datafiler innehåller värden som infogas i (n)varchar(max) och varbinär(max)-kolumner, samt kolumnsegment som ingår i kolumnlagringsindex på minnesoptimerade tabeller.
internal_storage_slot int Indexet för filen i den interna lagringsmatrisen. NULL för ROOT eller för tillstånd annat än 1.
checkpoint_pair_file_id uniqueidentifier Motsvarande DATA- eller DELTA-fil. NULL för ROOT.
file_size_in_bytes bigint Filstorleken på disken.
file_size_used_in_bytes bigint För checkpoint-filpar som fortfarande fylls i kommer denna kolumn att uppdateras efter nästa checkpoint.
logical_row_count bigint För Data, antal insatta rader.

För Delta, antal rader rader raderna efter att ha tagit hänsyn till dropptabellen.

För Root, NULL.
state smallint 0 - FÖRSKAPADE

1 - UNDER BYGGNATION

2 - AKTIV

3 - SAMMANFOGA MÅL

8 - VÄNTAR PÅ LOGGTRUNKERING
tillstånd_beskrivning nvarchar(60) FÖRSKAPADE – Ett antal checkpoint-filer är förallokerade för att minimera eller eliminera väntetider för att allokera nya filer medan transaktioner genomförs. Dessa filer kan variera i storlek och skapas beroende på arbetsbelastningens uppskattade behov. De innehåller inga data. Detta är en lagringsöverhead i databaser med en MEMORY_OPTIMIZED_DATA filgrupp.

UNDER KONSTRUKTION – Dessa checkpoint-filer är under konstruktion, vilket betyder att de fylls på baserat på loggposterna som genereras av databasen och ännu inte är en del av en checkpoint.

AKTIV - Dessa innehåller de insatta/borttagna raderna från tidigare stängda kontrollpunkter. De innehåller innehållet i tabellerna som området läser in i minnet innan den aktiva delen av transaktionsloggen appliceras vid databasomstarten. Vi förväntar oss att storleken på dessa checkpoint-filer blir ungefär 2 gånger så stor som minnesoptimerade tabeller i minnet, förutsatt att sammanslagningsoperationen håller jämna steg med den transaktionella arbetsbelastningen.

MERGE TARGET – Målet för sammanslagningsoperationer – dessa kontrollpunktsfiler lagrar de konsoliderade dataraderna från källfilerna som identifierats av sammanslagningspolicyn. När sammanslagningen är installerad övergår MERGE-MÅLET till AKTIVT tillstånd.

VÄNTAR PÅ LOGGTRUNKERING – När sammanslagningen har installerats och MERGE TARGET CFP är en del av en hållbar checkpoint, övergår checkpointfilerna till detta tillstånd. Filer i detta tillstånd behövs för att databasens operativa korrekthet ska vara med minnesoptimerad tabell. Till exempel för att återhämta sig från en hållbar kontrollpunkt för att resa tillbaka i tiden.
lower_bound_tsn bigint Nedre gränsen för transaktionen i filen; NULL om tillståndet inte ingår i (1, 3).
upper_bound_tsn bigint Övre gränsen för transaktionen i filen; NULL om tillståndet inte ingår i (1, 3).
begin_checkpoint_id bigint ID för startkontrollpunkten.
end_checkpoint_id bigint ID för slutkontrollpunkten.
last_updated_checkpoint_id bigint ID för den senaste kontrollpunkten som uppdaterade denna fil.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => OKRYPTERAD

1 => KRYPTERAD MED NYCKEL 1

2 => KRYPTERAD MED NYCKEL 2. Gäller endast för aktiva filer.

SQL Server 2014 (12.x)

Följande tabell beskriver kolumnerna för sys.dm_db_xtp_checkpoint_files, för SQL Server 2014 (12.x).

Kolumnnamn Typ Description
container_id int Containerns ID (representerat som en fil med typen FILESTREAM i sys.database_files) som data- eller delta-filen tillhör. Ansluter sig till file_idsys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID:n för containern som datan eller delta-filen ingår i.
checkpoint_file_id GUID ID för datan eller delta-filen.
relative_file_path nvarchar(256) Väg till data- eller deltafilen, i förhållande till containerns plats.
file_type tinyint 0 för datafil.

1 för delta-filen.

NULL om tillståndskolumnen är satt till 7.
file_type_desc nvarchar(60) Filtypen: DATA_FILE, DELTA_FILE, eller NULL om statuskolumnen är satt till 7.
internal_storage_slot int Indexet för filen i den interna lagringsmatrisen. NULL om tillståndskolumnen inte är 2 eller 3.
checkpoint_pair_file_id uniqueidentifier Den motsvarande datan eller delta-filen.
file_size_in_bytes bigint Storleken på filen som används. NULL om tillståndskolumnen är satt till 5, 6 eller 7.
file_size_used_in_bytes bigint Använd storlek på filen som används. NULL om tillståndskolumnen är satt till 5, 6 eller 7.

För checkpoint-filpar som fortfarande fylls i kommer denna kolumn att uppdateras efter nästa checkpoint.
inserted_row_count bigint Antal rader i datafilen.
deleted_row_count bigint Antal raderade rader i delta-filen.
drop_table_deleted_row_count bigint Antalet rader i datafilerna påverkas av en dropptabell. Gäller för datafiler när tillståndskolumnen är lika med 1.

Visar raderade rader från bortlagda tabeller. De drop_table_deleted_row_count statistiken kompileras efter att minnesskräpsamlingen av rader från de bortlagda tabellerna är klar och en kontrollpunkt har tagits. Om du startar om SQL Server innan dropptabellernas statistik återspeglas i denna kolumn, kommer statistiken att uppdateras som en del av återställningen. Återställningsprocessen laddar inte rader från nedlagda tabeller. Statistik för tappade tabeller sammanställs under lastfasen och rapporteras i denna kolumn när återställningen är klar.
state int 0 - FÖRSKAPADE

1 - UNDER BYGGNATION

2 - AKTIV

3 - SAMMANFOGA MÅL

4 - SAMMANSLAGEN KÄLLA

5 - KRÄVS FÖR BACKUP/HA

6 - ÖVERGÅNG TILL GRAVSTEN

7 - GRAVSTEN
tillstånd_beskrivning nvarchar(60) FÖRSKAPADE – En liten uppsättning data- och delta-filpar, även kallade checkpoint-filpar (CFP), hålls förallokerade för att minimera eller eliminera väntetider för att allokera nya filer medan transaktioner körs. De skapas med en datafilstorlek på 128 MB och en deltafilstorlek på 8 MB, men innehåller ingen data. Antalet CFP:er beräknas som antalet logiska processorer eller schemaläggare (en per kärna, inget max) med ett minimum på 8. Detta är en fast lagringsöverhead i databaser med minnesoptimerade tabeller.

UNDER KONSTRUKTION – Uppsättning CFP:er som lagrar nyinsatta och eventuellt raderade datarader sedan senaste kontrollpunkten.

AKTIV - Dessa innehåller de insatta och borttagna raderna från tidigare stängda kontrollpunkter. Dessa CFP:er innehåller alla nödvändiga insatta och raderade rader som krävs innan den aktiva delen av transaktionsloggen appliceras vid databasomstarten. Storleken på dessa CFP:er kommer att vara ungefär dubbelt så stor som minnesoptimerade tabeller i minnet, förutsatt att sammanslagningsoperationen är aktuell med den transaktionella arbetsbelastningen.

SAMMANSLAGNINGSMÅL – CFP lagrar de konsoliderade dataraderna från CFP:erna som identifierats av sammanslagningspolicyn. När sammanslagningen är installerad övergår MERGE-MÅLET till AKTIVT tillstånd.

MERGED SOURCE – När sammanslagningsoperationen är installerad markeras käll-CFP:erna som MERGED SOURCE. Observera att utvärderaren av sammanslagningspolicyn kan identifiera flera sammanslagningar men en CFP kan bara delta i en sammanslagningsoperation.

KRÄVS FÖR BACKUP/HA – När sammanslagningen har installerats och MERGE TARGET CFP är en del av en hållbar kontrollpunkt, övergår sammanslagningskäll-CFP:erna till detta tillstånd. CFP:er i detta tillstånd behövs för att databasen ska vara operativ korrekt med minnesoptimerad tabell. Till exempel för att återhämta sig från en hållbar kontrollpunkt för att resa tillbaka i tiden. En CFP kan markeras för skräpsamling när loggtrunkeringspunkten passerar sitt transaktionsintervall.

I ÖVERGÅNGEN TILL TOMBSTONE – Dessa CFP:er behövs inte av den ursprungliga OLTP-motorn In-Memory och kan samlas in som skräphämtare. Detta tillstånd indikerar att dessa CFP:er väntar på bakgrundstråden för att övergå dem till nästa tillstånd, som är TOMBSTONE.

TOMBSTONE – Dessa CFP:er väntar på att samlas in av filströmmens skräpsamlare. (sp_filestream_force_garbage_collection (Transact-SQL) )
lower_bound_tsn bigint Den nedre gränsen för transaktioner som finns i filen. NULL om statuskolumnen är annan än 2, 3 eller 4.
upper_bound_tsn bigint Den övre gränsen för transaktioner som finns i filen. NULL om statuskolumnen är annan än 2, 3 eller 4.
last_backup_page_count int Logiskt sidantal som bestäms vid sista säkerhetskopieringen. Gäller när statuskolumnen är satt till 2, 3, 4 eller 5. NULL om sidantalet inte är känt.
delta_watermark_tsn int Transaktionen av den senaste kontrollpunkten som skrev till denna delta-fil. Det här är vattenstämpeln för delta-filen.
last_checkpoint_recovery_lsn nvarchar(23) Återställningsloggens sekvensnummer för den senaste kontrollpunkten som fortfarande behöver filen.
tombstone_operation_lsn nvarchar(23) Filen kommer att raderas när tombstone_operation_lsn hamnar efter loggtrunkeringsprotokollets sekvensnummer.
logical_deletion_log_block_id bigint Gäller endast för delstat 5.

Permissions

Kräver VIEW DATABASE STATE behörighet för databasen.

Behörigheter för SQL Server 2022 och senare

Kräver behörigheten VISA DATABASPRESTANDATILLSTÅND för databasen.

Användningsfall

Du kan uppskatta den totala lagringsanvändningen av In-Memory OLTP enligt följande:

-- 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ör att se en uppdelning av lagringsanvändning efter tillstånd och filtyp, kör följande fråga:

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;