sys.dm_db_xtp_checkpoint_files (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Menampilkan informasi tentang file titik pemeriksaan OLTP Dalam Memori, termasuk ukuran file, lokasi fisik, dan ID transaksi.

Catatan

Untuk titik pemeriksaan saat ini yang belum ditutup, kolom sys.dm_db_xtp_checkpoint_files status akan BERADA DI BAWAH KONSTRUKSI untuk file baru. Titik pemeriksaan ditutup secara otomatis ketika ada pertumbuhan log transaksi yang memadai sejak titik pemeriksaan terakhir, atau jika Anda mengeluarkan CHECKPOINT perintah. Untuk informasi selengkapnya, lihat CHECKPOINT (Transact-SQL).

Grup file yang dioptimalkan memori secara internal menggunakan file khusus tambahan untuk menyimpan baris yang disisipkan dan dihapus untuk tabel dalam memori. Ada dua jenis file. File data berisi baris yang disisipkan sementara file delta berisi referensi ke baris yang dihapus.

SQL Server 2014 (12.x) secara substansial berbeda dari versi yang lebih baru dan dibahas di SQL Server 2014.

Untuk informasi selengkapnya, lihat Membuat dan Mengelola Penyimpanan untuk Objek yang Dioptimalkan Memori.

SQL Server 2016 (13.x) dan yang lebih baru

Tabel berikut ini menjelaskan kolom untuk sys.dm_db_xtp_checkpoint_files, dimulai dengan SQL Server 2016 (13.x).

Nama kolom Tipe Deskripsi
container_id int ID kontainer (direpresentasikan sebagai file dengan jenis FILESTREAM di sys.database_files) yang merupakan bagian dari file data atau delta. Bergabung dengan file_id dalam sys.database_files (Transact-SQL).
container_guid pengidentifikasi unik GUID Kontainer, yang merupakan bagian dari file akar, data, atau delta. Bergabung dengan file_guid dalam sys.database_files tabel.
checkpoint_file_id pengidentifikasi unik GUID file titik pemeriksaan.
relative_file_path nvarchar(256) Jalur file relatif terhadap kontainer yang dipetakan.
file_type smallint -1 gratis

0 untuk file DATA.

1 untuk file DELTA.

2 untuk file ROOT

3 untuk file DATA BESAR
file_type_desc nvarchar(60) GRATIS- Semua file yang dipertahankan sebagai GRATIS tersedia untuk alokasi. File gratis dapat bervariasi dalam ukuran tergantung pada kebutuhan yang diantisipasi oleh sistem. Ukuran maksimum adalah 1 GB.

DATA - File data berisi baris yang telah disisipkan ke dalam tabel yang dioptimalkan memori.

DELTA - File delta berisi referensi ke baris dalam file data yang telah dihapus.

ROOT - File akar berisi metadata sistem untuk objek yang dioptimalkan memori dan dikompilasi secara asli.

DATA BESAR - File data besar berisi nilai yang dimasukkan dalam kolom (n)varchar(maks) dan varbinary(maks), serta segmen kolom yang merupakan bagian dari indeks penyimpan kolom pada tabel yang dioptimalkan memori.
internal_storage_slot int Indeks file dalam array penyimpanan internal. NULL untuk ROOT atau untuk status selain 1.
checkpoint_pair_file_id pengidentifikasi unik File DATA atau DELTA yang sesuai. NULL untuk ROOT.
file_size_in_bytes bigint Ukuran file pada disk.
file_size_used_in_bytes bigint Untuk pasangan file titik pemeriksaan yang masih diisi, kolom ini akan diperbarui setelah titik pemeriksaan berikutnya.
logical_row_count bigint Untuk Data, jumlah baris yang disisipkan.

Untuk Delta, jumlah baris yang dihapus setelah memperhitungkan tabel drop.

Untuk Root, NULL.
state smallint 0 - DIBUAT SEBELUMNYA

1 - SEDANG DIBANGUN

2 - AKTIF

3 - GABUNGKAN TARGET

8 - MENUNGGU PEMOTONGAN LOG
state_desc nvarchar(60) DIBUAT SEBELUMNYA - Sejumlah file titik pemeriksaan dialokasikan sebelumnya untuk meminimalkan atau menghilangkan penantian untuk mengalokasikan file baru saat transaksi sedang dijalankan. File-file ini dapat bervariasi dalam ukuran, dan dibuat tergantung pada perkiraan kebutuhan beban kerja. Mereka tidak berisi data. Ini adalah overhead penyimpanan dalam database dengan grup file MEMORY_OPTIMIZED_DATA.

UNDER CONSTRUCTION - File titik pemeriksaan ini sedang dibangun, yang berarti file sedang diisi berdasarkan catatan log yang dihasilkan oleh database, dan belum menjadi bagian dari titik pemeriksaan.

ACTIVE - Ini berisi baris yang disisipkan/dihapus dari titik pemeriksaan tertutup sebelumnya. Mereka berisi konten tabel yang dibaca area ke dalam memori sebelum menerapkan bagian aktif log transaksi pada mulai ulang database. Kami mengharapkan ukuran file titik pemeriksaan ini sekitar 2x dari ukuran dalam memori tabel yang dioptimalkan memori, dengan asumsi operasi penggabungan mengikuti beban kerja transaksi.

TARGET MERGE - Target operasi penggabungan - file titik pemeriksaan ini menyimpan baris data terkonsolidasi dari file sumber yang diidentifikasi oleh kebijakan penggabungan. Setelah penggabungan diinstal, TARGET MERGE beralih ke status AKTIF.

MENUNGGU PEMOTONGAN LOG - Setelah penggabungan diinstal dan MERGE TARGET CFP adalah bagian dari titik pemeriksaan tahan lama, file titik pemeriksaan sumber gabungan beralih ke status ini. File dalam status ini diperlukan untuk kebenaran operasional database dengan tabel yang dioptimalkan memori. Misalnya, untuk memulihkan dari titik pemeriksaan yang tahan lama untuk kembali ke masa lalu.
lower_bound_tsn bigint Batas bawah transaksi dalam file; NULL jika status tidak dalam (1, 3).
upper_bound_tsn bigint Batas atas transaksi dalam file; NULL jika status tidak dalam (1, 3).
begin_checkpoint_id bigint ID titik pemeriksaan mulai.
end_checkpoint_id bigint ID titik pemeriksaan akhir.
last_updated_checkpoint_id bigint ID titik pemeriksaan terakhir yang memperbarui file ini.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => TIDAK TERENKRIPSI

1 => DIENKRIPSI DENGAN KUNCI 1

2 => DIENKRIPSI DENGAN KUNCI 2. Hanya berlaku untuk file aktif.

SQL Server 2014 (12.x)

Tabel berikut ini menjelaskan kolom untuk , untuk sys.dm_db_xtp_checkpoint_filesSQL Server 2014 (12.x).

Nama kolom Tipe Deskripsi
container_id int ID kontainer (direpresentasikan sebagai file dengan jenis FILESTREAM di sys.database_files) yang merupakan bagian dari file data atau delta. Bergabung dengan file_id dalam sys.database_files (Transact-SQL).
container_guid pengidentifikasi unik GUID kontainer yang merupakan bagian dari file data atau delta.
checkpoint_file_id GUID ID data atau file delta.
relative_file_path nvarchar(256) Jalur ke data atau file delta, relatif terhadap lokasi kontainer.
file_type kecil 0 untuk file data.

1 untuk file delta.

NULL jika kolom status diatur ke 7.
file_type_desc nvarchar(60) Jenis file: DATA_FILE, DELTA_FILE, atau NULL jika kolom status diatur ke 7.
internal_storage_slot int Indeks file dalam array penyimpanan internal. NULL jika kolom status bukan 2 atau 3.
checkpoint_pair_file_id pengidentifikasi unik Data atau file delta yang sesuai.
file_size_in_bytes bigint Ukuran file yang digunakan. NULL jika kolom status diatur ke 5, 6, atau 7.
file_size_used_in_bytes bigint Ukuran file yang digunakan digunakan. NULL jika kolom status diatur ke 5, 6, atau 7.

Untuk pasangan file titik pemeriksaan yang masih diisi, kolom ini akan diperbarui setelah titik pemeriksaan berikutnya.
inserted_row_count bigint Jumlah baris dalam file data.
deleted_row_count bigint Jumlah baris yang dihapus dalam file delta.
drop_table_deleted_row_count bigint Jumlah baris dalam file data yang dipengaruhi oleh tabel drop. Berlaku untuk file data ketika kolom status sama dengan 1.

Memperlihatkan jumlah baris yang dihapus dari tabel yang dihilangkan. Statistik drop_table_deleted_row_count dikompilasi setelah pengumpulan sampah memori baris dari tabel yang dihilangkan selesai dan titik pemeriksaan diambil. Jika Anda memulai ulang SQL Server sebelum statistik tabel drop tercermin dalam kolom ini, statistik akan diperbarui sebagai bagian dari pemulihan. Proses pemulihan tidak memuat baris dari tabel yang dihilangkan. Statistik untuk tabel yang dihilangkan dikompilasi selama fase beban dan dilaporkan dalam kolom ini ketika pemulihan selesai.
state int 0 - DIBUAT SEBELUMNYA

1 - SEDANG DIBANGUN

2 - AKTIF

3 - GABUNGKAN TARGET

4 - SUMBER GABUNGAN

5 - DIPERLUKAN UNTUK PENCADANGAN/HA

6 - DALAM TRANSISI KE BATU NISAN

7 - BATU NISAN
state_desc nvarchar(60) DIBUAT SEBELUMNYA - Sekumpulan kecil data dan pasangan file delta, juga dikenal sebagai pasangan file titik pemeriksaan (CFP) tetap dialokasikan sebelumnya untuk meminimalkan atau menghilangkan penantian untuk mengalokasikan file baru karena transaksi sedang dijalankan. File tersebut dibuat dengan ukuran file data 128 MB dan ukuran file delta 8 MB, tetapi tidak berisi data. Jumlah CFP dihitung sebagai jumlah prosesor logis atau penjadwal (satu per inti, tidak maksimum) dengan minimal 8. Ini adalah overhead penyimpanan tetap dalam database dengan tabel yang dioptimalkan memori.

UNDER CONSTRUCTION - Kumpulan CFP yang menyimpan baris data yang baru disisipkan dan mungkin dihapus sejak titik pemeriksaan terakhir.

ACTIVE - Ini berisi baris yang disisipkan dan dihapus dari titik pemeriksaan tertutup sebelumnya. CFP ini berisi semua baris yang disisipkan dan dihapus yang diperlukan sebelum menerapkan bagian aktif log transaksi pada mulai ulang database. Ukuran CFP ini akan menjadi sekitar dua kali ukuran dalam memori tabel yang dioptimalkan memori, dengan asumsi operasi penggabungan saat ini dengan beban kerja transaksional.

MERGE TARGET - CFP menyimpan baris data terkonsolidasi dari CFP yang diidentifikasi oleh kebijakan penggabungan. Setelah penggabungan diinstal, TARGET MERGE beralih ke status AKTIF.

SUMBER MERGED - Setelah operasi penggabungan diinstal, CFP sumber ditandai sebagai SUMBER MERGED. Perhatikan, evaluator kebijakan penggabungan mungkin mengidentifikasi beberapa penggabungan tetapi CFP hanya dapat berpartisipasi dalam satu operasi penggabungan.

DIPERLUKAN UNTUK BACKUP/HA - Setelah penggabungan diinstal dan MERGE TARGET CFP adalah bagian dari titik pemeriksaan tahan lama, CFP sumber gabungan beralih ke status ini. CFP dalam status ini diperlukan untuk kebenaran operasional database dengan tabel yang dioptimalkan memori. Misalnya, untuk memulihkan dari titik pemeriksaan yang tahan lama untuk kembali ke masa lalu. CFP dapat ditandai untuk pengumpulan sampah setelah titik pemotongan log bergerak di luar rentang transaksinya.

DALAM TRANSISI KE TOMBSTONE - CFP ini tidak diperlukan oleh mesin OLTP Dalam Memori dan dapat menjadi sampah yang dikumpulkan. Status ini menunjukkan bahwa CFP ini menunggu utas latar belakang untuk mentransisikannya ke status berikutnya, yaitu TOMBSTONE.

TOMBSTONE - CFP ini menunggu untuk menjadi sampah yang dikumpulkan oleh pengumpul sampah aliran file. (sp_filestream_force_garbage_collection (T-SQL))
lower_bound_tsn bigint Batas bawah transaksi yang terkandung dalam file. NULL jika kolom status selain 2, 3, atau 4.
upper_bound_tsn bigint Batas atas transaksi yang terkandung dalam file. NULL jika kolom status selain 2, 3, atau 4.
last_backup_page_count int Jumlah halaman logis yang ditentukan pada pencadangan terakhir. Berlaku saat kolom status diatur ke 2, 3, 4, atau 5. NULL jika jumlah halaman tidak diketahui.
delta_watermark_tsn int Transaksi titik pemeriksaan terakhir yang menulis ke file delta ini. Ini adalah marka air untuk file delta.
last_checkpoint_recovery_lsn nvarchar(23) Nomor urutan log pemulihan dari titik pemeriksaan terakhir yang masih memerlukan file.
tombstone_operation_lsn nvarchar(23) File akan dihapus setelah tombstone_operation_lsn berada di belakang nomor urutan log pemotongan log.
logical_deletion_log_block_id bigint Hanya berlaku untuk status 5.

Izin

VIEW DATABASE STATE Memerlukan izin pada database.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA DATABASE pada database.

Kasus Penggunaan

Anda dapat memperkirakan total penyimpanan yang digunakan oleh OLTP Dalam Memori sebagai berikut:

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

Untuk melihat perincian pemanfaatan penyimpanan menurut status dan jenis file, jalankan kueri berikut:

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;