Bagikan melalui


sys.dm_exec_query_optimizer_memory_gateways (T-SQL)

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

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

Column Tipe Deskripsi
pool_id int ID kumpulan sumber daya di bawah Resource Governor
name 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.
threshold 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 mengurangi 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, pengurangan permintaan akan memiliki akumulasi jenis tunggu RESOURCE_SEMAPHORE_QUERY_COMPILE terkait. Jenis tunggu RESOURCE_SEMAPHORE_QUERY_COMPILE mungkin menunjukkan bahwa kueri menggunakan sejumlah besar memori untuk kompilasi dan memori tersebut habis. Atau, mungkin ada cukup memori yang tersedia secara keseluruhan tetapi unit yang tersedia di gateway tertentu habis. Output sys.dm_exec_query_optimizer_memory_gateways dapat digunakan untuk memecahkan masalah skenario di mana tidak ada cukup memori untuk mengkompilasi rencana eksekusi kueri.

Contoh

J. Melihat 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;