sys.dm_exec_query_optimizer_memory_gateways (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL DatabaseAzure SQL Managed Instance yang lebih baru

Mengembalikan status semaphores sumber daya saat ini yang digunakan untuk membatasi pengoptimalan kueri bersamaan.

Kolom Jenis Deskripsi
pool_id int ID kumpulan sumber daya di bawah Resource Governor
nama nama sysname Mengkompilasi nama gerbang (Gateway Kecil, Gateway Sedang, Gateway Besar)
max_count int Jumlah maksimum kompilasi bersamaan yang dikonfigurasi
active_count int Jumlah kompilasi yang saat ini aktif di gerbang ini
waiter_count int Jumlah pelayan di gerbang ini
threshold_factor bigint Faktor ambang batas yang menentukan bagian memori maksimum yang digunakan oleh pengoptimalan kueri. Untuk gateway kecil, threshold_factor menunjukkan penggunaan memori pengoptimal maksimum dalam byte untuk satu kueri sebelum diperlukan untuk mendapatkan akses di gateway kecil. Untuk gateway sedang dan besar, threshold_factor menunjukkan bagian dari total memori server yang tersedia untuk gerbang ini. Ini digunakan sebagai pembabung saat menghitung ambang penggunaan memori untuk gerbang.
ambang bigint Memori ambang berikutnya dalam byte. Kueri diperlukan untuk mendapatkan akses ke gateway ini jika konsumsi memorinya mencapai ambang batas ini. "-1" jika kueri tidak diperlukan untuk mendapatkan akses ke gateway ini.
is_active bit Apakah kueri diperlukan untuk melewati gerbang saat ini atau tidak.

Izin

SQL Server memerlukan izin TAMPILKAN STATUS SERVER di server.

Azure SQL Database memerlukan izin TAMPILKAN STATUS DATABASE dalam database.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Keterangan

SQL Server menggunakan pendekatan gateway berjenjang untuk membatasi jumlah kompilasi bersamaan yang diizinkan. Tiga gateway digunakan, termasuk kecil, sedang dan besar. Gateway membantu mencegah kelelahan sumber daya memori secara keseluruhan oleh konsumen yang membutuhkan memori kompilasi yang lebih besar.

Menunggu di gateway mengakibatkan kompilasi tertunda. Selain penundaan kompilasi, permintaan yang dibatasi akan memiliki akumulasi jenis tunggu RESOURCE_SEMAPHORE_QUERY_COMPILE terkait. Jenis tunggu RESOURCE_SEMAPHORE_QUERY_COMPILE dapat menunjukkan bahwa kueri menggunakan sejumlah besar memori untuk kompilasi dan memori telah habis, atau atau ada cukup memori yang tersedia secara keseluruhan, namun unit yang tersedia di gateway tertentu telah habis. Output sys.dm_exec_query_optimizer_memory_gateways dapat digunakan untuk memecahkan masalah skenario di mana memori tidak mencukupi untuk mengkompilasi rencana eksekusi kueri.

Contoh

J. Menampilkan statistik pada semaphores sumber daya

Apa statistik gateway memori pengoptimal saat ini untuk instans SQL Server ini?

SELECT [pool_id], [name], [max_count], [active_count],
       [waiter_count], [threshold_factor], [threshold],
       [is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;   

Lihat Juga

Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis Terkait Eksekusi (Transact-SQL)
Cara menggunakan perintah DBCC MEMORYSTATUS untuk memantau penggunaan memori pada kompilasi kueri SQL Server 2005Besar menunggu di RESOURCE_SEMAPHORE_QUERY_COMPILE di SQL Server 2014