Sdílet prostřednictvím


sys.dm_db_xtp_checkpoint_files (Transact-SQL)

platí pro: SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Zobrazuje informace o In-Memory OLTP kontrolních souborech, včetně velikosti souboru, fyzické polohy a ID transakce.

Poznámka:

Pro aktuální kontrolní bod, který se nezavřel, bude sloupec stavu v sys.dm_db_xtp_checkpoint_files KONSTRUKCI pro nové soubory. Kontrolní bod se automaticky uzavře, když od posledního checkpointu dojde k dostatečnému růstu transakčního logu, nebo pokud zadáte CHECKPOINT příkaz. Další informace naleznete v tématu CHECKPOINT (Transact-SQL).

Paměťově optimalizovaná skupina souborů interně používá soubory pouze pro připojování k ukládání vložených a smazaných řádků pro tabulky v paměti. Existují dva typy souborů. Datový soubor obsahuje vložené řádky, zatímco delta soubor obsahuje odkazy na smazané řádky.

SQL Server 2014 (12.x) se výrazně liší od novějších verzí a je diskutován v SQL Server 2014.

Pro více informací viz Vytváření a správa úložiště pro Memory-Optimized objekty.

SQL Server 2016 (13.x) a novější

Následující tabulka popisuje sloupce pro sys.dm_db_xtp_checkpoint_files, počínaje SQL Server 2016 (13.x).

Název sloupce Typ Description
container_id int ID kontejneru (reprezentovaného jako soubor s typem FILESTREAM v sys.database_files), jehož součástí je datový nebo delta soubor. Spojuje se s file_id in sys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID kontejneru, jehož součástí je root, data nebo delta soubor. Přidává se ke file_guid stolu sys.database_files .
checkpoint_file_id uniqueidentifier GUID souboru checkpointu.
relative_file_path nvarchar(256) Cesta souboru vzhledem ke kontejneru, na který je mapován.
file_type smallint -1 zdarma

0 pro soubor DATA.

1 pro soubor DELTA.

2 pro ROOT soubor

3 pro soubor LARGE DATA
popis_typu_souboru nvarchar(60) ZDARMA – Všechny soubory spravované jako ZDARMA jsou k dispozici pro přidělení. Volné soubory se mohou lišit velikostí v závislosti na očekávaných potřebách systému. Maximální velikost je 1 GB.

DATA - Datové soubory obsahují řádky vložené do tabulek optimalizovaných pro paměť.

DELTA - Delta soubory obsahují odkazy na řádky v datových souborech, které byly smazany.

ROOT - Kořenové soubory obsahují systémová metadata pro paměťově optimalizované a nativně kompilované objekty.

VELKÁ DATA – Velké datové soubory obsahují hodnoty vložené ve sloupcích (n)varchar(max) a varbinary(max), stejně jako sloupcové segmenty, které jsou součástí indexů úložiště sloupců v tabulkách optimalizovaných pro paměť.
internal_storage_slot int Index souboru v interním úložném poli. NULL pro ROOT nebo pro stav jiný než 1.
checkpoint_pair_file_id uniqueidentifier Odpovídající soubor DATA nebo DELTA. NULL pro ROOT.
file_size_in_bytes bigint Velikost souboru na disku.
file_size_used_in_bytes bigint Pro páry souborů checkpointů, které jsou stále vyplňovány, se tento sloupec aktualizuje po dalším checkpointu.
logical_row_count bigint Pro Data počet vložených řádků.

Pro Deltu, počet řádků smazaných po zohlednění tabulky dropů.

Pro Root, NULL.
stav smallint 0 - PŘEDVYTVOŘENÉ

1 - VE VÝSTAVBĚ

2 - AKTIVNÍ

3 - CÍL SLOUČENÍ

8 - ČEKÁNÍ NA OŘEZÁVÁNÍ LOGARITMU
state_desc nvarchar(60) PŘEDVYTVOŘENO - Několik kontrolních bodů je předalokováno, aby se minimalizovalo nebo eliminovalo čekání na alokaci nových souborů během provádění transakcí. Tyto soubory se mohou lišit velikostí a vytvářejí se podle odhadovaných potřeb pracovního zatížení. Neobsahují žádná data. Jedná se o režijní zátěž v databázích s MEMORY_OPTIMIZED_DATA souborovou skupinou.

VE VÝVOJI – Tyto soubory kontrolních bodů jsou ve fázi výstavby, což znamená, že jsou vyplňovány na základě záznamů v logu generovaných databází a zatím nejsou součástí žádného kontrolního bodu.

AKTIVNÍ - Tyto obsahují vložené/smazané řádky z předchozích uzavřených kontrolních bodů. Obsahují obsah tabulek, které se načtou do paměti před aplikací aktivní části transakčního logu při restartu databáze. Očekáváme, že velikost těchto checkpointových souborů bude přibližně 2x větší než velikost paměťově optimalizovaných tabulek, za předpokladu, že operace slučování drží krok s transakční zátěží.

CÍL SLOUČENÍ – Cíl operací slučování – tyto kontrolní soubory uchovávají konsolidované datové řádky ze zdrojových souborů, které byly identifikovány politikou sloučení. Jakmile je sloučení nainstalováno, MERGE TARGET přechází do aktivního stavu.

ČEKÁNÍ NA ZKRÁCENÍ LOGŮ - Jakmile je sloučení nainstalováno a CÍLOVÝ CFP je součástí trvalého kontrolního bodu, soubory zdrojového kontrolního bodu přecházejí do tohoto stavu. Soubory v tomto stavu jsou nezbytné pro provozní správnost databáze s tabulkou optimalizovanou pro paměť. Například se zotavit z trvalého kontrolního bodu a vrátit se v čase.
lower_bound_tsn bigint Dolní hranice transakce v souboru; NULL pokud není uvedeno v (1, 3).
upper_bound_tsn bigint Horní hranice transakce v souboru; NULL pokud není uvedeno v (1, 3).
begin_checkpoint_id bigint Identifikace výchozího kontrolního bodu.
end_checkpoint_id bigint Identifikace koncového kontrolního bodu.
last_updated_checkpoint_id bigint ID posledního kontrolního bodu, který aktualizoval tento soubor.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => NEŠIFROVANÉ

1 => ZAŠIFROVÁNO KLÍČEM 1

2 => ZAŠIFROVÁNO KLÍČEM 2. Platí pouze pro aktivní soubory.

SQL Server 2014 (12.x)

Následující tabulka popisuje sloupce pro sys.dm_db_xtp_checkpoint_files, pro SQL Server 2014 (12.x).

Název sloupce Typ Description
container_id int ID kontejneru (reprezentovaného jako soubor s typem FILESTREAM v sys.database_files), jehož součástí je datový nebo delta soubor. Spojuje se s file_id in sys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID kontejneru, jehož součástí je datový nebo delta soubor.
checkpoint_file_id GUID ID datového nebo delta souboru.
relative_file_path nvarchar(256) Cesta k datovému nebo delta souboru vzhledem k umístění kontejneru.
file_type tinyint 0 pro datový soubor.

1 pro delta soubor.

NULL pokud je sloupec stavu nastaven na 7.
popis_typu_souboru nvarchar(60) Typ souboru: DATA_FILE, DELTA_FILE, nebo NULL pokud je sloupec stavu nastaven na 7.
internal_storage_slot int Index souboru v interním úložném poli. NULL pokud sloupec stavu není 2 nebo 3.
checkpoint_pair_file_id uniqueidentifier Odpovídající datový nebo delta soubor.
file_size_in_bytes bigint Velikost použitého souboru. NULL pokud je sloupec stavu nastaven na 5, 6 nebo 7.
file_size_used_in_bytes bigint Použitá velikost použitého souboru. NULL pokud je sloupec stavu nastaven na 5, 6 nebo 7.

Pro páry souborů checkpointů, které jsou stále vyplňovány, se tento sloupec aktualizuje po dalším checkpointu.
inserted_row_count bigint Počet řádků v datovém souboru.
deleted_row_count bigint Počet smazaných řádků v souboru delta.
drop_table_deleted_row_count bigint Počet řádků v datových souborech ovlivněných tabulkou dropů. Platí to pro datové soubory, když je sloupec stavu rovn 1.

Zobrazuje počet smazaných řádků z vyřazených tabulek. drop_table_deleted_row_count statistiky se sestavují poté, co je dokončena paměťová sběr řádků z odložených tabulek a je proveden kontrolní bod. Pokud restartujete SQL Server dříve, než se statistiky drop tabulek zobrazí v tomto sloupci, statistiky se aktualizují jako součást obnovy. Proces obnovy nenačítá řádky z nefunkčních tabulek. Statistiky pro ztracené tabulky jsou sestavovány během fáze načítání a po dokončení obnovy jsou v tomto sloupci hlášeny.
stav int 0 - PŘEDVYTVOŘENÉ

1 - VE VÝSTAVBĚ

2 - AKTIVNÍ

3 - CÍL SLOUČENÍ

4 - SLOUČENÝ ZDROJ

5 - POVINNÉ PRO ZÁLOHU/HA

6 - PŘECHOD K TOMBSTONE

7 - NÁHROBEK
state_desc nvarchar(60) PŘEDVYTVOŘENÉ – Malá sada datových a delta dvojic souborů, známých také jako páry checkpoint souborů (CFP), je uchovávána předalokována, aby se minimalizovalo nebo eliminovalo čekání na alokaci nových souborů během provádění transakcí. Jsou vytvořeny s velikostí datového souboru 128 MB a delta velikostí souboru 8 MB, ale neobsahují žádná data. Počet CFP se počítá jako počet logických procesorů nebo plánovačů (jeden na jádro, bez maxima) s minimálním počtem 8. Jedná se o pevnou režijní zátěž v databázích s tabulkami optimalizovanými pro paměť.

VE VÝSTAVBĚ – Sada CFP, které uchovávají nově vložené a případně smazané datové řádky od posledního kontrolního bodu.

ACTIVE - Tyto obsahují vložené a smazané řádky z předchozích uzavřených kontrolních bodů. Tyto CFP obsahují všechny potřebné vložené a smazané řádky potřebné před aplikací aktivní části transakčního logu při restartu databáze. Velikost těchto CFP bude přibližně dvojnásobná oproti velikosti tabulek optimalizovaných v paměti, za předpokladu, že operace slučování je aktuální s transakční zátěží.

CÍL SLOUČENÍ – CFP ukládá konsolidované datové řádky z CFP(ů), které byly identifikovány politikou sloučení. Jakmile je sloučení nainstalováno, MERGE TARGET přechází do aktivního stavu.

MERGED SOURCE - Jakmile je operace merge nainstalována, zdrojové CFP jsou označeny jako MERGED SOURCE. Poznámka: hodnotitel politiky sloučení může identifikovat více sloučení, ale CFP se může účastnit pouze jedné operace sloučení.

POVINNOST ZÁLOHOVÁNÍ/HA - Jakmile je sloučení nainstalováno a CÍLOVÝ CFP je součástí trvalého kontrolního bodu, přecházejí CFP do tohoto stavu. CFP v tomto stavu jsou potřeba pro provozní správnost databáze s tabulkou optimalizovanou pro paměť. Například se zotavit z trvalého kontrolního bodu a vrátit se v čase. CFP lze označit pro sběr odpadu, jakmile bod logaritmu oříznutí překročí rozsah transakce.

PŘECHOD NA TOMBSTONE – Tyto CFP nejsou pro engine In-Memory OLTP potřeba a mohou být odvozovány jako odpad. Tento stav znamená, že tyto CFP čekají, až je vlákno na pozadí převede do dalšího stavu, kterým je TOMBSTONE.

TOMBSTONE – Tyto CFP čekají na odvoz odpadu sběratelem ze souborů. (sp_filestream_force_garbage_collection (Transact-SQL))
lower_bound_tsn bigint Dolní hranice transakcí obsažených ve souboru. NULL pokud je sloupec stavu jiný než 2, 3 nebo 4.
upper_bound_tsn bigint Horní hranice transakcí obsažených ve souboru. NULL pokud je sloupec stavu jiný než 2, 3 nebo 4.
last_backup_page_count int Logický počet stránek je určen při poslední záloze. Platí tehdy, když je sloupec stav nastaven na 2, 3, 4 nebo 5. NULL pokud počet stran není znám.
delta_watermark_tsn int Transakce posledního kontrolního bodu, který zapisoval do tohoto delta souboru. Toto je vodoznak pro delta soubor.
last_checkpoint_recovery_lsn nvarchar(23) Sekvence logu obnovy posledního kontrolního bodu, který soubor stále potřebuje.
tombstone_operation_lsn nvarchar(23) Soubor bude smazán, jakmile tombstone_operation_lsn zaostává za logaritmickým číslem logu zkrácení.
logical_deletion_log_block_id bigint Platí pouze pro stát 5.

Povolení

Vyžaduje VIEW DATABASE STATE oprávnění k databázi.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU DATABÁZE pro databázi.

Případy použití

Celkovou spotřebu paměti In-Memory OLTP můžete odhadnout následovně:

-- 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;

Pro rozpis využití úložiště podle stavu a typu souboru spusťte následující dotaz:

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;