Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Toont informatie over In-Memory OLTP-checkpointbestanden, inclusief bestandsgrootte, fysieke locatie en de transactie-ID.
Opmerking
Voor het huidige checkpoint dat niet gesloten is, zal de statuskolom van sys.dm_db_xtp_checkpoint_files IN AANBOUW zijn voor nieuwe bestanden. Een checkpoint sluit automatisch wanneer er voldoende groei is in het transactielog sinds het laatste checkpoint, of als je het CHECKPOINT commando geeft. Zie CHECKPOINT (Transact-SQL)voor meer informatie.
Een geheugengeoptimaliseerde bestandsgroep gebruikt intern append-only bestanden om ingevoegde en verwijderde rijen op te slaan voor in-memory tabellen. Er zijn twee soorten bestanden. Een databestand bevat ingevoegde rijen, terwijl een deltabestand verwijzingen bevat naar verwijderde rijen.
SQL Server 2014 (12.x) verschilt aanzienlijk van recentere versies en wordt besproken in SQL Server 2014.
Voor meer informatie, zie Opslag aanmaken en beheren voor Memory-Optimized objecten.
SQL Server 2016 (13.x) en later
De volgende tabel beschrijft de kolommen voor sys.dm_db_xtp_checkpoint_files, beginnend met SQL Server 2016 (13.x).
| Kolomnaam | Typologie | Description |
|---|---|---|
| container_id | int | De ID van de container (weergegeven als een bestand met het type FILESTREAM in sys.database_files) waarvan het data- of deltabestand deel uitmaakt. Sluit zich aan bij file_id in sys.database_files (Transact-SQL). |
| container_guid | uniqueidentifier | GUID van de container, waarvan het root-, data- of deltabestand deel uitmaakt. Voegt zich aan in file_guid de sys.database_files tabel. |
| checkpoint_file_id | uniqueidentifier | GUID van het checkpointbestand. |
| relative_file_path | nvarchar(256) | Het pad van het bestand ten opzichte van de container waaraan het wordt toegewezen. |
| file_type | smallint | -1 GRATIS 0 voor het DATA-bestand. 1 voor het DELTA-bestand. 2 voor ROOT-bestand 3 voor LARGE DATA-bestand |
| bestandstypebeschrijving | nvarchar(60) | GRATIS - Alle bestanden die als GRATIS worden onderhouden, zijn beschikbaar voor toewijzing. Gratis bestanden kunnen in grootte variëren afhankelijk van de verwachte behoeften van het systeem. De maximale grootte is 1 GB. DATA - Databestanden bevatten rijen die zijn ingevoegd in geheugengeoptimaliseerde tabellen. DELTA - Delta-bestanden bevatten verwijzingen naar rijen in databestanden die zijn verwijderd. ROOT - Rootbestanden bevatten systeemmetadata voor geheugengeoptimaliseerde en native gecompileerde objecten. GROTE DATA - Grote databestanden bevatten waarden die zijn ingevoegd in kolommen (n)varchar(max) en varbinary(max), evenals de kolomsegmenten die deel uitmaken van kolomopslagindexen op geheugengeoptimaliseerde tabellen. |
| internal_storage_slot | int | De index van het bestand in de interne opslagarray.
NULL voor ROOT of voor een toestand anders dan 1. |
| checkpoint_pair_file_id | uniqueidentifier | Overeenkomstig DATA- of DELTA-bestand.
NULL voor ROOT. |
| file_size_in_bytes | bigint | Grootte van het bestand op de schijf. |
| file_size_used_in_bytes | bigint | Voor checkpoint-bestandsparen die nog worden ingevuld, wordt deze kolom bijgewerkt na het volgende checkpoint. |
| logical_row_count | bigint | Voor Data is het aantal ingevoegde rijen het aantal ingevoegde rijen. Voor Delta wordt het aantal rijen verwijderd nadat ik rekening heb gehouden met de droptable. Voor Root is NULL. |
| state | smallint | 0 - VOORAF GEMAAKT 1 - IN AANBOUW 2 - ACTIEF 3 - DOEL SAMENVOEGEN 8 - WACHTEN OP STAMAFKAPPING |
| staatsbeschrijving | nvarchar(60) | VOORAF GEMAAKT - Een aantal checkpointbestanden wordt vooraf toegewezen om wachttijden bij het toewijzen van nieuwe bestanden tijdens transacties te minimaliseren of te elimineren. Deze bestanden kunnen variëren in grootte en worden aangemaakt afhankelijk van de geraamde behoefte aan de werklast. Ze bevatten geen data. Dit is een opslagoverhead in databases met een MEMORY_OPTIMIZED_DATA bestandsgroep. IN AANBOUW - Deze checkpointbestanden zijn in aanbouw, wat betekent dat ze worden ingevuld op basis van de logrecords die door de database zijn gegenereerd, en maken nog geen deel uit van een checkpoint. ACTIEF - Deze bevatten de ingevoegde/verwijderde rijen van eerdere gesloten checkpoints. Ze bevatten de inhoud van de tabellen die in het geheugen worden gelezen voordat het actieve deel van het transactielogboek wordt toegepast bij de herstart van de database. We verwachten dat de grootte van deze checkpointbestanden ongeveer twee keer zo groot is als de in-memory grootte van geheugen-geoptimaliseerde tabellen, ervan uitgaande dat de merge-operatie gelijke tred houdt met de transactionele werklast. MERGE TARGET - Het doel van merge operations - deze checkpointbestanden slaan de geconsolideerde datalijnen op uit de bronbestanden die door het mergebeleid zijn geïdentificeerd. Zodra de merge is geïnstalleerd, schakelt de MERGE TARGET over in de ACTIEVE toestand. WACHTEN OP LOG-AFKORTING - Zodra de merge is geïnstalleerd en de MERGE TARGET CFP deel uitmaakt van een duurzame checkpoint, gaan de merge source checkpointbestanden over naar deze toestand. Bestanden in deze toestand zijn nodig voor de operationele correctheid van de database met geheugengeoptimaliseerde tabel. Bijvoorbeeld om te herstellen van een duurzaam checkpoint om terug in de tijd te gaan. |
| lower_bound_tsn | bigint | Ondergrens van de transactie in het bestand; NULL als de staat niet in (1, 3) zit. |
| upper_bound_tsn | bigint | Bovengrens van de transactie in het bestand; NULL als de staat niet in (1, 3) zit. |
| begin_checkpoint_id | bigint | ID van het begincontrolepunt. |
| end_checkpoint_id | bigint | ID van het eindcontrolepunt. |
| last_updated_checkpoint_id | bigint | ID van het laatste checkpoint dat dit bestand heeft bijgewerkt. |
| encryption_status | smallint | 0, 1, 2 |
| encryption_status_desc | nvarchar(60) | 0 => ONVERSLEUTELD 1 => VERSLEUTELD MET SLEUTEL 1 2 => VERSLEUTELD MET SLEUTEL 2. Geldig alleen voor actieve bestanden. |
SQL Server 2014 (12.x)
De volgende tabel beschrijft de kolommen voor sys.dm_db_xtp_checkpoint_files, voor SQL Server 2014 (12.x).
| Kolomnaam | Typologie | Description |
|---|---|---|
| container_id | int | De ID van de container (weergegeven als een bestand met het type FILESTREAM in sys.database_files) waarvan het data- of deltabestand deel uitmaakt. Sluit zich aan bij file_id in sys.database_files (Transact-SQL). |
| container_guid | uniqueidentifier | De GUID van de container waarvan de data of delta-bestand deel uitmaakt. |
| checkpoint_file_id | GUID | ID van de data of delta-bestand. |
| relative_file_path | nvarchar(256) | Pad naar het data- of deltabestand, ten opzichte van de locatie van de container. |
| file_type | tinyint | 0 voor het databestand. 1 voor delta-bestand. NULL als de toestandskolom op 7 is gezet. |
| bestandstypebeschrijving | nvarchar(60) | Het type bestand: DATA_FILE, DELTA_FILE, of NULL als de statuskolom op 7 staat. |
| internal_storage_slot | int | De index van het bestand in de interne opslagarray.
NULL als de toestandskolom niet 2 of 3 is. |
| checkpoint_pair_file_id | uniqueidentifier | De bijbehorende data of deltabestand. |
| file_size_in_bytes | bigint | Grootte van het gebruikte bestand.
NULL als de toestandskolom is ingesteld op 5, 6 of 7. |
| file_size_used_in_bytes | bigint | Gebruikte grootte van het gebruikte bestand.
NULL als de toestandskolom is ingesteld op 5, 6 of 7.Voor checkpoint-bestandsparen die nog worden ingevuld, wordt deze kolom bijgewerkt na het volgende checkpoint. |
| inserted_row_count | bigint | Aantal rijen in het databestand. |
| deleted_row_count | bigint | Aantal verwijderde rijen in het delta-bestand. |
| drop_table_deleted_row_count | bigint | Het aantal rijen in de databestanden dat wordt beïnvloed door een droptable. Van toepassing op databestanden wanneer de toestandskolom gelijk is aan 1. Toont verwijderde rijtellingen uit verwijderde tabellen(en). De drop_table_deleted_row_count statistieken worden gecompileerd nadat de geheugen-garbage collection van de rijen uit de gedropte tabel is voltooid en een checkpoint is genomen. Als je SQL Server opnieuw opstart voordat de droptabellenstatistieken in deze kolom worden weergegeven, worden de statistieken bijgewerkt als onderdeel van het herstel. Het herstelproces laadt geen rijen van weggelaten tabellen. Statistieken voor afgedankte tabellen worden samengesteld tijdens de laadfase en in deze kolom gerapporteerd wanneer het herstel is voltooid. |
| state | int | 0 - VOORAF GEMAAKT 1 - IN AANBOUW 2 - ACTIEF 3 - DOEL SAMENVOEGEN 4 - SAMENGEVOEGDE BRON 5 - VEREIST VOOR BACK-UP/HA 6 - IN OVERGANG NAAR GRAFSTEEN 7 - GRAFSTEEN |
| staatsbeschrijving | nvarchar(60) | VOORGEMAAKTE - Een kleine set data- en delta-bestandsparen, ook wel checkpoint-bestandsparen (CFP's) genoemd, wordt vooraf toegewezen om wachttijden bij het toewijzen van nieuwe bestanden tijdens transacties te minimaliseren of te elimineren. Ze worden gemaakt met een databestandsgrootte van 128 MB en een delta-bestandsgrootte van 8 MB, maar bevatten geen data. Het aantal CFP's wordt berekend als het aantal logische processors of schedulers (één per core, geen maximum) met een minimum van 8. Dit is een vaste opslagoverhead in databases met geheugengeoptimaliseerde tabellen. IN AANBOUW - Set van CFP's die nieuw ingevoegde en mogelijk verwijderde datarijen opslaan sinds het laatste checkpoint. ACTIEF - Deze bevatten de ingevoegde en verwijderde rijen van eerdere gesloten checkpoints. Deze CFP's bevatten alle vereiste ingevoegde en verwijderde rijen die nodig zijn voordat het actieve deel van het transactielogboek wordt toegepast bij de herstart van de database. De grootte van deze CFP's zal ongeveer twee keer zo groot zijn als de in-memory grootte van geheugen-geoptimaliseerde tabellen, ervan uitgaande dat de merge-operatie actueel is met de transactionele werklast. MERGE TARGET - De CFP slaat de geconsolideerde datarijen van de CFP(s) op die door het mergebeleid zijn geïdentificeerd. Zodra de merge is geïnstalleerd, schakelt de MERGE TARGET over in de ACTIEVE toestand. MERGED SOURCE - Zodra de merge-operatie is geïnstalleerd, worden de source CFP's gemarkeerd als MERGED SOURCE. Let op: de samenvoegbeleidsevaluator kan meerdere samenvoegingen identificeren, maar een CFP kan slechts aan één samenvoegingsoperatie deelnemen. VEREIST VOOR BACK-UP/HA - Zodra de merge is geïnstalleerd en de MERGE TARGET CFP deel uitmaakt van een duurzame checkpoint, gaan de merge source CFP's over naar deze toestand. CFP's in deze toestand zijn nodig voor de operationele correctheid van de database met geheugengeoptimaliseerde tabel. Bijvoorbeeld om te herstellen van een duurzaam checkpoint om terug in de tijd te gaan. Een CFP kan worden gemarkeerd voor garbage collection zodra het log-afkappunt buiten zijn transactiebereik gaat. IN OVERGANG NAAR TOMBSTONE - Deze CFP's zijn niet nodig voor de In-Memory OLTP-engine en kunnen garbage collected worden gebruikt. Deze toestand geeft aan dat deze CFP's wachten op de achtergronddraad om ze over te zetten naar de volgende toestand, namelijk TOMBSTONE. TOMBSTONE - Deze CFP's wachten om door de filestream garbage collector te worden verzameld. (sp_filestream_force_garbage_collection (Transact-SQL) ) |
| lower_bound_tsn | bigint | De ondergrens van transacties in het bestand.
NULL als de kolom toestand anders is dan 2, 3 of 4. |
| upper_bound_tsn | bigint | De bovengrens van transacties in het bestand.
NULL als de kolom toestand anders is dan 2, 3 of 4. |
| last_backup_page_count | int | Logisch paginaaantal dat bij de laatste back-up wordt bepaald. Van toepassing wanneer de toestandskolom is ingesteld op 2, 3, 4 of 5.
NULL als het aantal pagina's niet bekend is. |
| delta_watermark_tsn | int | De transactie van het laatste checkpoint dat naar dit deltabestand schreef. Dit is het watermerk voor het delta-bestand. |
| last_checkpoint_recovery_lsn | nvarchar(23) | Herstellog-sequentienummer van het laatste checkpoint dat het bestand nog nodig heeft. |
| tombstone_operation_lsn | nvarchar(23) | Het bestand wordt verwijderd zodra de tombstone_operation_lsn achterblijft bij het logafkapings-log-sequentienummer. |
| logical_deletion_log_block_id | bigint | Gilt alleen voor staat 5. |
Permissions
Vereist VIEW DATABASE STATE machtiging voor de database.
Machtigingen voor SQL Server 2022 en hoger
Hiervoor is de machtiging VIEW DATABASE PERFORMANCE STATE vereist voor de database.
Gebruiksvoorbeelden
Je kunt het totale geheugen dat door In-Memory OLTP wordt gebruikt als volgt schatten:
-- 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;
Om een uitsplitsing van opslaggebruik per toestand en bestandstype te zien, voer de volgende query uit:
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;
Verwante inhoud
- Inleiding tot Memory-Optimized tabellen
- Memory-Optimized Dynamische Beheerweergaven van tabellen
- In-Memory OLTP Overzicht en Gebruiksscenario's
- Prestaties optimaliseren met behulp van in-memory technologieën in Azure SQL Database
- Prestaties optimaliseren met behulp van in-memory technologieën in Azure SQL Managed Instance