sys.dm_db_xtp_checkpoint_files (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Visualizza informazioni sui file di checkpoint OLTP in memoria, incluse le dimensioni del file, il percorso fisico e l'ID transazione.
Nota
Per il checkpoint corrente che non è stato chiuso, la colonna di stato di sys.dm_db_xtp_checkpoint_files
sarà UNDER CONSTRUCTION per i nuovi file. Un checkpoint viene chiuso automaticamente quando è presente un aumento sufficiente del log delle transazioni dopo l'ultimo checkpoint o se si esegue il CHECKPOINT
comando. Per altre informazioni, vedere CHECKPOINT (Transact-SQL).
Un filegroup ottimizzato per la memoria usa internamente file di sola accodamento per archiviare righe inserite ed eliminate per le tabelle in memoria. Sono disponibili due tipi di file. Un file di dati contiene righe inserite mentre un file differenziale contiene riferimenti alle righe eliminate.
SQL Server 2014 (12.x) è sostanzialmente diverso dalle versioni più recenti ed è descritto in SQL Server 2014.
Per altre informazioni, vedere Creazione e gestione dell'archiviazione per oggetti ottimizzati per la memoria.
SQL Server 2016 (13.x) e versioni successive
La tabella seguente descrive le colonne per sys.dm_db_xtp_checkpoint_files
, a partire da SQL Server 2016 (13.x).
Nome colonna | Tipo | Descrizione |
---|---|---|
container_id | int | ID del contenitore (rappresentato come file con tipo FILESTREAM in sys.database_files ) di cui fa parte il file di dati o differenziali. Join con file_id in sys.database_files (Transact-SQL). |
container_guid | uniqueidentifier | GUID del contenitore, di cui fa parte la radice, i dati o il file differenziale. Join con file_guid nella sys.database_files tabella. |
checkpoint_file_id | uniqueidentifier | GUID del file del checkpoint. |
relative_file_path | nvarchar(256) | Percorso del file relativo al contenitore a cui viene eseguito il mapping. |
file_type | smallint | -1 gratuitamente 0 per il file DI DATI. 1 per il file DELTA. 2 per il file ROOT 3 per file DI DATI DI GRANDI DIMENSIONI |
file_type_desc | nvarchar(60) | FREE- Tutti i file gestiti come FREE sono disponibili per l'allocazione. I file liberi possono variare in base alle esigenze previste dal sistema. La dimensione massima è 1 GB. DATA: i file di dati contengono righe inserite nelle tabelle ottimizzate per la memoria. DELTA: i file delta contengono riferimenti alle righe nei file di dati eliminati. ROOT: i file radice contengono metadati di sistema per gli oggetti compilati e ottimizzati per la memoria. LARGE DATA: i file di dati di grandi dimensioni contengono valori inseriti nelle colonne (n)varchar(max) e varbinary(max), nonché i segmenti di colonna che fanno parte degli indici columnstore nelle tabelle ottimizzate per la memoria. |
internal_storage_slot | int | Indice del file nella matrice di archiviazione interna. NULL per ROOT o per lo stato diverso da 1 . |
checkpoint_pair_file_id | uniqueidentifier | File DATA o DELTA corrispondente. NULL per ROOT. |
file_size_in_bytes | bigint | Dimensioni del file sul disco. |
file_size_used_in_bytes | bigint | Per le coppie di file del checkpoint ancora da popolare, questa colonna verrà aggiornata dopo il checkpoint successivo. |
logical_row_count | bigint | Per Dati, numero di righe inserite. Per Delta, numero di righe eliminate dopo la contabilità per la tabella di rilascio. Per Root, NULL. |
state | smallint | 0 - PRECREATED 1 - IN COSTRUZIONE 2 - ACTIVE 3 - UNIONE DESTINAZIONE 8 - IN ATTESA DEL TRONCAMENTO DEL LOG |
state_desc | nvarchar(60) | PRECREATED: alcuni file di checkpoint vengono preallocati per ridurre al minimo o eliminare eventuali attese per allocare nuovi file durante l'esecuzione delle transazioni. Questi file possono variare in base alle dimensioni e vengono creati in base alle esigenze stimate del carico di lavoro. Non contengono dati. Si tratta di un sovraccarico di archiviazione nei database con un filegroup MEMORY_OPTIMIZED_DATA. UNDER CONSTRUCTION : questi file di checkpoint sono in fase di costruzione, ovvero vengono popolati in base ai record di log generati dal database e non fanno ancora parte di un checkpoint. ACTIVE: contengono le righe inserite/eliminate dai checkpoint chiusi precedenti. Contengono il contenuto delle tabelle che vengono lette in memoria prima di applicare la parte attiva del log delle transazioni al riavvio del database. Si prevede che le dimensioni di questi file di checkpoint siano pari a circa 2x delle dimensioni in memoria delle tabelle ottimizzate per la memoria, presupponendo che l'operazione di unione sia sempre al passo con il carico di lavoro transazionale. MERGE TARGET : destinazione delle operazioni di unione: questi file di checkpoint archiviano le righe di dati consolidate dai file di origine identificati dai criteri di unione. Una volta installata l'operazione di unione, lo stato di MERGE TARGET diventa ACTIVE. WAITING FOR LOG TRUNCATION : dopo l'installazione dell'unione e il CFP MERGE TARGET fa parte di un checkpoint durevole, i file del checkpoint di origine di merge passano a questo stato. I file in questo stato sono necessari per la correttezza operativa del database con la tabella ottimizzata per la memoria. Ad esempio, per recuperare da un checkpoint durevole tornando indietro nel tempo. |
lower_bound_tsn | bigint | Limite inferiore della transazione nel file; NULL se lo stato non è in (1, 3). |
upper_bound_tsn | bigint | Limite superiore della transazione nel file; NULL se lo stato non è in (1, 3). |
begin_checkpoint_id | bigint | ID del checkpoint di inizio. |
end_checkpoint_id | bigint | ID del checkpoint finale. |
last_updated_checkpoint_id | bigint | ID dell'ultimo checkpoint che ha aggiornato il file. |
encryption_status | smallint | 0, 1, 2 |
encryption_status_desc | nvarchar(60) | 0 => NON CRITTOGRAFATO 1 => CRITTOGRAFATO CON CHIAVE 1 2 => CRITTOGRAFATO CON CHIAVE 2. Valido solo per i file attivi. |
SQL Server 2014 (12.x)
Nella tabella seguente vengono descritte le colonne per , per SQL Server 2014 (12.x).The following table describes the columns for sys.dm_db_xtp_checkpoint_files
, for SQL Server 2014 (12.x).
Nome colonna | Tipo | Descrizione |
---|---|---|
container_id | int | ID del contenitore (rappresentato come file con tipo FILESTREAM in sys.database_files ) di cui fa parte il file di dati o differenziali. Join con file_id in sys.database_files (Transact-SQL). |
container_guid | uniqueidentifier | GUID del contenitore di cui fa parte il file di dati o il file differenziale. |
checkpoint_file_id | GUID | ID del file di dati o differenziale. |
relative_file_path | nvarchar(256) | Percorso del file di dati o differenziale, relativo al percorso del contenitore. |
file_type | tinyint | 0 per il file di dati. 1 per il file differenziale. NULL se la colonna di stato è impostata su 7. |
file_type_desc | nvarchar(60) | Tipo di file: DATA_FILE, DELTA_FILE o NULL se la colonna di stato è impostata su 7. |
internal_storage_slot | int | Indice del file nella matrice di archiviazione interna. NULL se la colonna di stato non è 2 o 3. |
checkpoint_pair_file_id | uniqueidentifier | File di dati o differenziale corrispondente. |
file_size_in_bytes | bigint | Dimensioni del file in uso. NULL se la colonna di stato è impostata su 5, 6 o 7. |
file_size_used_in_bytes | bigint | Dimensioni utilizzate del file in uso. NULL se la colonna di stato è impostata su 5, 6 o 7.Per le coppie di file del checkpoint ancora da popolare, questa colonna verrà aggiornata dopo il checkpoint successivo. |
inserted_row_count | bigint | Numero di righe del file di dati. |
deleted_row_count | bigint | Numero di righe eliminate del file differenziale. |
drop_table_deleted_row_count | bigint | Numero di righe nei file di dati interessati dall'eliminazione di una tabella. Si applica ai file di dati quando la colonna contenente gli stati è uguale a 1. Mostra i conteggi delle righe eliminate dalle tabelle eliminate. Le statistiche drop_table_deleted_row_count vengono compilate dopo il completamento del Garbage Collection in memoria delle righe delle tabelle eliminate e l'esecuzione di un checkpoint. Se si riavvia SQL Server prima che le statistiche delle tabelle di rilascio vengano riflesse in questa colonna, le statistiche verranno aggiornate come parte del ripristino. Il processo di recupero non carica le righe delle tabelle eliminate. Le statistiche delle tabelle eliminate vengono compilate durante la fase di caricamento e riportate nella colonna al termine del recupero. |
state | int | 0 - PRECREATED 1 - IN COSTRUZIONE 2 - ACTIVE 3 - UNIONE DESTINAZIONE 4 - ORIGINE UNITA 5 - OBBLIGATORIO PER IL BACKUP/DISPONIBILITÀ ELEVATA 6 - IN TRANSIZIONE A TOMBSTONE 7 - TOMBSTONE |
state_desc | nvarchar(60) | PRECREATED: un piccolo set di coppie di file di dati e differenziali, note anche come coppie di file di checkpoint (CFP) vengono mantenute preallocate per ridurre al minimo o eliminare eventuali attese per allocare nuovi file durante l'esecuzione delle transazioni. Vengono creati con dimensioni del file di dati di 128 MB e file differenziali di 8 MB, ma non contengono dati. Il numero di coppie di file di checkpoint è calcolato in base al numero di processori logici o utilità di pianificazione (uno per core, senza limiti) con un minimo di 8. Si tratta di un overhead di archiviazione fisso nei database con tabelle ottimizzate per la memoria. IN COSTRUZIONE - Set di file di file di checkpoint che archivia le righe di dati appena inserite ed eventualmente eliminate dopo l'ultimo checkpoint. ACTIVE: contengono le righe inserite ed eliminate dai precedenti checkpoint chiusi. Queste coppie di file di checkpoint contengono tutte le righe inserite ed eliminate richieste prima dell'applicazione della parte attiva del log delle transazioni al riavvio del database. Le dimensioni di questi file di file di cluster di controllo saranno circa due volte le dimensioni in memoria delle tabelle ottimizzate per la memoria, presupponendo che l'operazione di unione sia corrente con il carico di lavoro transazionale. MERGE TARGET: la CFP archivia le righe di dati consolidate dei CFP identificate dai criteri di unione. Una volta installata l'operazione di unione, lo stato di MERGE TARGET diventa ACTIVE. MERGE SOURCE: dopo l'installazione dell'operazione di merge, i FILE di origine vengono contrassegnati come MERGE SOURCE. Si noti che l'analizzatore di criteri di unione potrebbe identificare più unioni, ma un CFP può partecipare solo a un'operazione di merge. OBBLIGATORIO PER BACKUP/DISPONIBILITÀ elevata: dopo l'installazione dell'unione e il CFP MERGE TARGET fa parte di un checkpoint durevole, i file di file di failover di origine di merge vengono trasferiti in questo stato. Le coppie di file di checkpoint in questo stato sono necessarie per la correttezza operativa del database in cui sia inclusa una tabella ottimizzata per la memoria. Ad esempio, per recuperare da un checkpoint durevole tornando indietro nel tempo. Una coppia di file di checkpoint può essere contrassegnata per il processo di Garbage Collection quando il punto di troncamento del log va oltre l'intervallo di transazioni. IN TRANSIZIONE A TOMBSTONE: questi CFP non sono necessari per il motore OLTP in memoria e possono essere sottoposto a Garbage Collection. Questo stato indica che le coppie di file di checkpoint sono in attesa del thread in background per passare allo stato successivo, ovvero allo stato TOMBSTONE. TOMBSTONE: questi file di file cfp sono in attesa di garbage collection da parte del Garbage Collector filestream. (sp_filestream_force_garbage_collection (Transact-SQL)) |
lower_bound_tsn | bigint | Limite inferiore delle transazioni incluse nel file. NULL se la colonna di stato è diversa da 2, 3 o 4. |
upper_bound_tsn | bigint | Limite superiore delle transazioni incluse nel file. NULL se la colonna di stato è diversa da 2, 3 o 4. |
last_backup_page_count | int | Conteggio delle pagine logiche determinato nell'ultimo backup. Si applica quando la colonna contenente gli stati è impostata su 2, 3, 4 o 5. NULL se il numero di pagine non è noto. |
delta_watermark_tsn | int | Transazione dell'ultimo checkpoint che ha scritto in questo file differenziale. Si tratta della filigrana per il file differenziale. |
last_checkpoint_recovery_lsn | nvarchar(23) | Numero di sequenza del file di log (LSN) di recupero dell'ultimo checkpoint per cui è ancora richiesto il file. |
tombstone_operation_lsn | nvarchar(23) | Il file verrà eliminato una volta che tombstone_operation_lsn non è più sincronizzato con l'LSN di troncamento del log. |
logical_deletion_log_block_id | bigint | Si applica solo alla stato 5. |
Autorizzazioni
È richiesta l'autorizzazione VIEW DATABASE STATE
per il database.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW DATABASE PERFORMANCE STATE per il database.
Casi d'uso
È possibile stimare lo spazio di archiviazione totale usato da OLTP in memoria come indicato di seguito:
-- 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;
Per visualizzare una suddivisione dell'utilizzo dello spazio di archiviazione in base allo stato e al tipo di file, eseguire la query seguente:
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;
Contenuto correlato
- Introduzione alle tabelle con ottimizzazione per la memoria
- Viste a gestione dinamica delle tabelle ottimizzate per la memoria
- Panoramica e scenari di utilizzo OLTP in memoria
- Ottimizzare le prestazioni usando tecnologie in memoria in database SQL di Azure
- Ottimizzare le prestazioni usando tecnologie in memoria in Istanza gestita di SQL di Azure