Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure 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;