sys.dm_xtp_gc_queue_stats (T-SQL)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Managed Instance Database Azure SQL

Menghasilkan informasi tentang setiap antrean pekerja pengumpulan sampah di server, dan berbagai statistik tentang masing-masing. Ada satu antrean per CPU logis.

Utas pengumpulan sampah utama (utas diam) melacak baris yang diperbarui, dihapus, dan disisipkan untuk semua transaksi yang selesai sejak pemanggilan terakhir utas pengumpulan sampah utama. Ketika utas pengumpulan sampah bangun, itu menentukan apakah tanda waktu transaksi aktif terlama telah berubah. Jika transaksi aktif terlama telah berubah, maka utas diam mengantrekan item kerja (dalam potongan 16 baris) untuk transaksi yang set tulisnya tidak lagi diperlukan. Misalnya, jika Anda menghapus 1.024 baris, Anda akhirnya akan melihat 64 item kerja pengumpulan sampah yang diantrekan, masing-masing berisi 16 baris yang dihapus. Setelah transaksi pengguna diterapkan, transaksi memilih semua item yang diantrekan pada penjadwalnya. Jika tidak ada item antrean pada penjadwalnya, transaksi pengguna akan mencari antrean apa pun di simpul NUMA saat ini.

Anda dapat menentukan apakah pengumpulan sampah membebaskan memori untuk baris yang dihapus dengan menjalankan sys.dm_xtp_gc_queue_stats untuk melihat apakah pekerjaan yang diantrekan sedang diproses. Jika entri dalam current_queue_depth tidak sedang diproses atau jika tidak ada item kerja baru yang ditambahkan ke current_queue_depth, ini adalah indikasi bahwa pengumpulan sampah tidak membebaskan memori. Misalnya, pengumpulan sampah tidak dapat dilakukan jika ada transaksi yang berjalan lama.

Untuk informasi selengkapnya, lihat OLTP Dalam Memori (Pengoptimalan Dalam Memori).

Nama kolom Jenis Deskripsi
queue_id int Pengidentifikasi unik antrean.
total_enqueues bigint Jumlah total item kerja pengumpulan sampah yang diantrekan ke antrean ini sejak server dimulai.
total_dequeues bigint Jumlah total item kerja pengumpulan sampah yang dihapus dari antrean ini sejak server dimulai.
current_queue_depth bigint Jumlah item kerja pengumpulan sampah saat ini yang ada pada antrean ini. Item ini mungkin menyiratkan satu atau beberapa sampah yang dikumpulkan.
maximum_queue_depth bigint Kedalaman maksimum antrean ini telah terlihat.
last_service_ticks bigint Centang CPU pada saat antrean terakhir dilayankan.

Izin

Memerlukan izin TAMPILKAN STATUS SERVER.

Skenario Pengguna

Output ini menunjukkan bahwa SQL Server berjalan pada 4 core atau instans SQL Server telah difinisikan ke 4 core:

Output ini menunjukkan bahwa tidak ada item kerja dalam antrean untuk diproses. Untuk antrean 0, total item kerja yang tidak diantrekan sejak Startup SQL adalah 15625 dan kedalaman antrean maks telah 15625.

queue_id total_enqueues total_dequeues current_queue_depth  maximum_queue_depth  last_service_ticks  
----------------------------------------------------------------------------------------------------  
0        15625                15625    0                    15625                1233573168347  
1        15625                15625    0                    15625                1234123295566  
2        15625                15625    0                    15625                1233569418146  
3        15625                15625    0                    15625                1233571605761  

Lihat juga

Tampilan Manajemen Dinamis Tabel yang Dioptimalkan Memori (Transact-SQL)