Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server,
Database SQL di Azure e
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.
Note
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.
Per altre informazioni, vedere Creazione e gestione dell'archiviazione per oggetti ottimizzati per la memoria.
| Nome della colonna | Tipo | Description |
|---|---|---|
| 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 |
| descrizione_tipo_file | 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. |
| Stato | smallint | 0 - PRECREATO 1 - IN COSTRUZIONE 2 - ATTIVO 3 - MERGE OBIETTIVO 8 - IN ATTESA DEL TRONCAMENTO DEL LOG |
| descrizione_stato | 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 - Il target delle operazioni di merge - questi file checkpoint memorizzano le righe di dati consolidate dai file sorgente identificati dalla politica di merge. Una volta installata la fusione, il MERGE TARGET passa allo stato ATTIVO. IN ATTESA DI TRONCAMENTO DEI LOG - Una volta installata la fusione e il MERGE CFP TARGET fa parte del checkpoint durevole, i file di checkpoint sorgente della fusione 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. |
Permissions
È richiesta l'autorizzazione VIEW DATABASE STATE per il database.
Autorizzazioni per SQL Server 2022 e versioni successive
Richiede VIEWDATABASE il permesso PERFORMANCE STATE sul 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;
Contenuti correlati
- Introduzione alle tabelle Memory-Optimized
- 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