Megosztás a következőn keresztül:


sys.dm_db_xtp_checkpoint_files (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Megjeleníti In-Memory OLTP ellenőrzőpont fájlokról szóló információkat, beleértve a fájlméretet, fizikai helyet és a tranzakcióazonosítót.

Megjegyzés:

A jelenleg nem zárt ellenőrzőpontnál az állapotoszlop sys.dm_db_xtp_checkpoint_files új fájlokhoz ÉPÍTÉS alatt lesz. Az ellenőrzőpont automatikusan bezárul, ha elegendő tranzakciónapló növekedés van az utolsó ellenőrzőpont óta, vagy ha kiadod a CHECKPOINT parancsot. További információ: CHECKPOINT (Transact-SQL).

Egy memóriaoptimalizált fájlcsoport belsőleg csak csatolt fájlokat használ a beillesztett és törölt sorok tárolására a memórián belüli táblákhoz. Kétféle fájl létezik. Egy adatfájl beillesztett sorokat tartalmaz, míg a delta fájl a törölt sorokra vonatkozó hivatkozásokat tartalmazza.

Az SQL Server 2014 (12.x) jelentősen eltér a újabb verzióktól, és az SQL Server 2014-ben is tárgyalják.

További információért lásd: Tárolás létrehozása és kezelése Memory-Optimized objektumokhoz.

SQL Server 2016 (13.x) és újabbá

Az alábbi táblázat az oszlopokat írja le , sys.dm_db_xtp_checkpoint_filesaz SQL Server 2016 (13.x) típussal kezdve.

Oszlop név Típus Description
container_id int Az adott konténer azonosítója (amely fájl típusa FILESTREAM in sys.database_files) tartalmazza, amelyhez az adat vagy delta fájl tartozik. Csatlakozik sys.database_files-ben file_id(Transact-SQL).
container_guid uniqueidentifier A Container GUID-je, amelynek része a gyökér, adat vagy delta fájl. Csatlakozik file_guid az sys.database_files asztalhoz.
checkpoint_file_id uniqueidentifier Az ellenőrzőpont fájljának GUID-je.
relative_file_path nvarchar(256) A fájl útja a konténerhez képest, amelyhez leképezve.
file_type smallint -1 INGYEN

0 az DATA fájlhoz.

1 a DELTA fájlhoz.

2 a ROOT fájlhoz

3 a NAGY ADATFÁJLHOZ
fájltípus_leírás nvarchar(60) INGYENES – Minden INGYENESKÉNT fenntartott fájl elérhető az elosztáshoz. Az ingyenes fájlok mérete változó lehet a rendszer által várt igényektől függően. A maximális méret 1 GB.

DATA – Az adatfájlok olyan sorokat tartalmaznak, amelyeket memóriaoptimalizált táblákba helyeztek be.

DELTA - A delta fájlok hivatkozásokat tartalmaznak az adatfájlokban törölt sorokra.

ROOT - A gyökérfájlok tartalmaznak rendszermetaadatokat a memóriaoptimalizált és natívan fordított objektumokhoz.

NAGY ADAT – A nagy adatfájlok értékeket tartalmaznak, amelyeket (n)varchar(max) és varbinary(max) oszlopokba helyeznek be, valamint azokat az oszlopszegmenseket, amelyek a memóriaoptimalizált táblák oszloptároló indexeinek részei.
internal_storage_slot int A fájl indexe a belső tároló tömbben. NULL ROOT esetén vagy más állapot esetén, mint 1.
checkpoint_pair_file_id uniqueidentifier Megfelelő DATA vagy DELTA fájl. NULL a ROOT-hoz.
file_size_in_bytes bigint A lemezen lévő fájl mérete.
file_size_used_in_bytes bigint Azok ellenőrzőpont-fájlpárjai esetén, amelyek még fel vannak töltve, ezt az oszlopot a következő ellenőrzőpont után frissítik.
logical_row_count bigint Adat esetén a beillesztett sorok száma.

A Delta esetében a törlés sorainak száma a drop table elszámítása után.

Root esetében NULL.
state smallint 0 - ELŐRE LÉTREHOZOTT

1 - ÉPÍTÉS ALATT

2 - AKTÍV

3 - CÉL ÖSSZEVONÁSA

8 - LOG LEVÁGÁSRA VÁRÁS
állapot_leírás nvarchar(60) ELŐRE LÉTREHOZVA – Számos ellenőrzőpont-fájlt előre elosztottak, hogy minimalizálják vagy megszüntetik az új fájlok kiosztására szükséges várakozást a tranzakciók végrehajtása közben. Ezek a fájlok méretük változó lehet, és a munkaterhelés becsült igényeitől függően hozhatók létre. Nincsenek adatok. Ez egy tárolási túlterhelés adatbázisokban, ahol MEMORY_OPTIMIZED_DATA fájlcsoport.

ÉPÍTÉS ALATT - Ezek az ellenőrzőpont-fájlok építés alatt állnak, vagyis az adatbázis által generált naplók alapján töltik fel őket, és még nem részei egy ellenőrzőpontnak.

ACTIVE – Ezek tartalmazzák a korábbi zárt ellenőrzőpontokból beillesztett/törölt sorokat. Ezek tartalmazzák azokat a táblák tartalmát, amelyeket a memóriába olvasnak, mielőtt az adatbázis újraindítása során a tranzakciónapló aktív részét alkalmaznák. Várhatóan ezeknek az ellenőrzőpontok méretének körülbelül kétszerese lesz a memóriaoptimalizált táblák memórián belüli méretének, feltéve, hogy az összevonási művelet lépést tart a tranzakciós terheléssel.

MERGE CÉL – Az egyesítési műveletek célpontja – ezek az ellenőrzőpontok tárolják a forrásfájlokból származó konszolidált adatsorokat, amelyeket az egyesítési szabályzat azonosított. Miután a merge telepített, a MERGE TARGET aktív állapotba kerül.

LOG TRUNKÁLÁSRA VÁRÁS – Miután a merge telepítve lett, és a MERGE TARGET CFP a tartós ellenőrzőpont része, az egyesülés forrás ellenőrzőpont fájlok átalakulnak ebbe az állapotba. Ebben az állapotban lévő fájlok szükségesek az adatbázis működési helyességéhez memóriaoptimalizált táblázattal. Például egy tartós ellenőrzőpontból való visszamehetés az időben.
lower_bound_tsn bigint A tranzakció alsó határa a fájlban; NULL ha az állapot nem az (1, 3) betűben.
upper_bound_tsn bigint A tranzakció felső határa a fájlban; NULL ha az állapot nem az (1, 3) betűben.
begin_checkpoint_id bigint A kezdő ellenőrzőpont azonosítója.
end_checkpoint_id bigint A végpont azonosítója.
last_updated_checkpoint_id bigint Az utolsó ellenőrzőpont azonosítója, amely frissítette ezt a fájlt.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => TITKOSÍTÁS NÉLKÜLI

1 => TITKOSÍTVA 1 KULCCSAL

2 => TITKOSÍTVA 2 KULCCSAL. Csak aktív fájlokra érvényes.

SQL Server 2014 (12.x)

Az alábbi táblázat az SQL Server 2014 (12.x) oszlopait sys.dm_db_xtp_checkpoint_filesírja le , számára.

Oszlop név Típus Description
container_id int Az adott konténer azonosítója (amely fájl típusa FILESTREAM in sys.database_files) tartalmazza, amelyhez az adat vagy delta fájl tartozik. Csatlakozik sys.database_files-ben file_id(Transact-SQL).
container_guid uniqueidentifier Az a konténer, amelynek része az adat vagy delta fájl.
checkpoint_file_id GUID Az adat vagy delta fájl azonosítója.
relative_file_path nvarchar(256) Az adathoz vagy a delta fájlhoz vezető út, a konténer helyéhez viszonyítva.
file_type tinyint 0 az adatfájlhoz.

1 a delta fájlhoz.

NULL ha az állapotoszlop 7-re van beállítva.
fájltípus_leírás nvarchar(60) A fájl típusa: DATA_FILE, DELTA_FILE, vagy NULL ha az állapotoszlop 7-re van állítva.
internal_storage_slot int A fájl indexe a belső tároló tömbben. NULL ha az állapotoszlop nem 2 vagy 3.
checkpoint_pair_file_id uniqueidentifier A megfelelő adat vagy delta fájl.
file_size_in_bytes bigint A használt fájl mérete. NULL ha az állapotoszlop 5, 6 vagy 7 értékű.
file_size_used_in_bytes bigint A fájl mérete a használt fájl felhasználása. NULL ha az állapotoszlop 5, 6 vagy 7 értékű.

Azok ellenőrzőpont-fájlpárjai esetén, amelyek még fel vannak töltve, ezt az oszlopot a következő ellenőrzőpont után frissítik.
inserted_row_count bigint A sorok száma az adatfájlban.
deleted_row_count bigint A delta fájlban törölt sorok száma.
drop_table_deleted_row_count bigint Az adatfájlokban szereplő sor száma, amelyeket egy drop table érint. Adatfájlokra vonatkozik, ha az állapotoszlop 1-gy.

Megmutatja a törölt sorszámokat az elhagyott táblákból. A drop_table_deleted_row_count statisztikákat akkor állítják össze, amikor a ledobott táblá(k) sorainak memóriahulladékgyűjtése befejeződött, és egy ellenőrzőpontot tartanak ki. Ha újraindítod az SQL Servert, mielőtt a drop tables statisztikák ebben az oszlopban megjelennek, a statisztikák a helyreállítás részeként frissülnek. A helyreállítási folyamat nem tölt be sorokat az elhagyott táblákból. Az elhagyott táblák statisztikáit a terhelési fázisban állítják össze, és a helyreállítás befejezésekor ebben az oszlopban jelentenek.
state int 0 - ELŐRE LÉTREHOZOTT

1 - ÉPÍTÉS ALATT

2 - AKTÍV

3 - CÉL ÖSSZEVONÁSA

4 - ÖSSZEVONT FORRÁS

5 - KÖTELEZŐ A MENTÉS/HA

6 - AZ ÁTMENET A TOMBSTONE-HOZ

7 - SÍRKŐ
állapot_leírás nvarchar(60) ELŐRE LÉTREHOZOTT – Egy kis adat- és delta fájlpárok, más néven ellenőrzőpont-fájlpárok (CFP-k) előre elosztottak, hogy minimalizálják vagy megszüntetjék az új fájlok kiosztására szükséges várakozást a tranzakciók végrehajtása közben. A fájl mérete 128 MB, delta fájl mérete 8 MB volt, de nem tartalmaznak adatokat. A CFP-k számát a logikai processzorok vagy ütemezők száma (egy magonként, maximummentes) számoljuk, minimum 8 volt. Ez fix tárolási túlterhelés az adatbázisokban, ahol memóriaoptimalizált táblázatok vannak.

ÉPÍTÉS ALATT - CFP-k halmaza, amely az utolsó ellenőrzőpont óta újonnan beillesztett és esetleg törölt adatsorokat tárolja.

AKTÍV – Ezek tartalmazzák a korábbi zárt ellenőrzőpontokból beillesztett és törölt sorokat. Ezek a CFP-k tartalmazzák az összes szükséges beillesztett és törölt sort, amely az adatbázis újraindítása során a tranzakciónapló aktív részének alkalmazása előtt szükséges. Ezeknek a CFP-knek a mérete körülbelül kétszerese a memóriaoptimalizált táblák memórián belüli méretének, feltéve, hogy az egyesítési művelet aktuális a tranzakciós munkaterheléssel.

ÖSSZEOLVADÁS CÉL – A CFP tárolja azokat a CFP(k)-k konszolidált adatsorait, amelyeket az egyesítési politika azonosított. Miután a merge telepített, a MERGE TARGET aktív állapotba kerül.

ÖSSZEVONT FORRÁS – Miután a merge művelet beépült, a forrás CFP-k MERGED SOURCE-ként vannak jelölve. Megjegyzendő, hogy a fúziós politika értékelő több egyesülést is azonosíthat, de a CFP csak egy egyesülési műveletben veszhet részt.

KÖTELEZŐ A MENTÉSHEZ/HA – Miután a merge telepítésre került, és a MERGE TARGET CFP a tartós ellenőrzőpont része, az egyesülési forrás CFP-k átalakulnak ebbe az állapotba. Ebben az állapotban CFP-kre van szükség az adatbázis működési helyességének érdekében memóriaoptimalizált táblázattal. Például egy tartós ellenőrzőpontból való visszamehetés az időben. A CFP-t szemétgyűjtésre lehet jelölni, ha a napló csorkítási pontja túllép a tranzakciós tartományon.

ÁTMENETBEN A TOMBSTONE-HOZ – EZEKRE A CFP-KRE A In-Memory OLTP MOTOR NEM IGÉNYEL, ÉS SZEMÉTGYŰJTŐK LEHETNEK. Ez az állapot azt jelzi, hogy ezek a CFP-k arra várnak, hogy a háttérszál áthelyezze őket a következő állapotba, amely a TOMBSTONE.

TOMBSTONE – Ezek a CFP-k arra várnak, hogy a filestream hulladékgyűjtő szemetet gyűjtsön. (sp_filestream_force_garbage_collection (Transact-SQL))
lower_bound_tsn bigint A fájlban szereplő tranzakciók alsó határa. NULL ha az állapotoszlop eltér a 2-től, 3-tól vagy 4-től.
upper_bound_tsn bigint A fájlban található tranzakciók felső határa. NULL ha az állapotoszlop eltér a 2-től, 3-tól vagy 4-től.
last_backup_page_count int Logikai oldalszám, amely a végső mentésnél határozzák meg. Akkor érvényes, ha az állapotoszlop 2, 3, 4 vagy 5 értékű. NULL ha az oldalszám nem ismert.
delta_watermark_tsn int Az utolsó ellenőrzőpont tranzakciója, amely erre a delta fájlra írt. Ez a delta fájl vízjele.
last_checkpoint_recovery_lsn nvarchar(23) Az utolsó ellenőrzőpont helyreállítási naplójának száma, amelyhez még szükség van a fájlra.
tombstone_operation_lsn nvarchar(23) A fájlt töröljük, ha a tombstone_operation_lsn lemarad a log csonkítási napló szekvencia száma mögött.
logical_deletion_log_block_id bigint Csak az 5-ös államra vonatkozik.

Permissions

Az adatbázishoz VIEW DATABASE STATE engedély szükséges.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

Az adatbázishoz a VIEW DATABASE PERFORMANCE STATE engedélyre van szükség.

Használati esetek

Az OLTP által használt teljes tároló mennyisége In-Memory következőképpen becsülhető:

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

A tárolóhasználat állapot és fájltípus szerinti bontásához a következő lekérdezést hajtsa végre:

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;