Bagikan melalui


sys.dm_exec_query_resource_semaphores (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan informasi tentang status semaphore sumber daya kueri saat ini di SQL Server. sys.dm_exec_query_resource_semaphores menyediakan status memori eksekusi kueri umum dan memungkinkan Anda menentukan apakah sistem dapat mengakses memori yang cukup. Tampilan ini melengkapi informasi memori yang diperoleh dari sys.dm_os_memory_clerks untuk memberikan gambaran lengkap status memori server. sys.dm_exec_query_resource_semaphores mengembalikan satu baris untuk semaphore sumber daya reguler dan baris lain untuk semaphore sumber daya kueri kecil. Ada dua persyaratan untuk semaphore kueri kecil:

  • Peruntukan memori yang diminta harus kurang dari 5 MB

  • Biaya kueri harus kurang dari 3 unit biaya

Catatan

Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_exec_query_resource_semaphores. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Nama kolom Jenis data Deskripsi
resource_semaphore_id smallint ID nonunique dari semaphore sumber daya. 0 untuk semaphore sumber daya reguler dan 1 untuk semaphore sumber daya kueri kecil.
target_memory_kb bigint Berikan target penggunaan dalam kilobyte.
max_target_memory_kb bigint Target potensial maksimum dalam kilobyte. NULL untuk semaphore sumber daya kueri kecil.
total_memory_kb bigint Memori yang disimpan oleh semaphore sumber daya dalam kilobyte. Jika sistem berada di bawah tekanan memori atau jika memori minimum paksa sering diberikan, nilai ini bisa lebih besar dari nilai target_memory_kb atau max_target_memory_kb . Total memori adalah jumlah memori yang tersedia dan diberikan.
available_memory_kb bigint Memori tersedia untuk hibah baru dalam kilobyte.
granted_memory_kb bigint Total memori yang diberikan dalam kilobyte.
used_memory_kb bigint Secara fisik digunakan bagian dari memori yang diberikan dalam kilobyte.
grantee_count int Jumlah kueri aktif yang telah dipenuhi pemberiannya.
waiter_count int Jumlah kueri yang menunggu pemberian terpenuhi.
timeout_error_count bigint Jumlah total kesalahan waktu habis sejak startup server. NULL untuk semaphore sumber daya kueri kecil.
forced_grant_count bigint Jumlah total pemberian memori minimum paksa sejak startup server. NULL untuk semaphore sumber daya kueri kecil.
pool_id int ID kumpulan sumber daya tempat sumber daya semaphore ini berada.
pdw_node_id int Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Pengidentifikasi untuk simpul tempat distribusi ini aktif.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Keterangan

Kueri yang menggunakan tampilan manajemen dinamis yang menyertakan ORDER BY atau agregat dapat meningkatkan konsumsi memori dan dengan demikian berkontribusi pada masalah pemecahan masalahnya.

Gunakan sys.dm_exec_query_resource_semaphores untuk pemecahan masalah tetapi jangan sertakan dalam aplikasi yang akan menggunakan versi SQL Server di masa mendatang.

Fitur Resource Governor memungkinkan administrator database untuk mendistribusikan sumber daya server di antara kumpulan sumber daya, hingga maksimum 64 kumpulan. Di SQL Server 2012 (11.x) dan yang lebih tinggi, setiap kumpulan bereaksi seperti instans server independen kecil dan membutuhkan 2 semaphores.

Lihat Juga

Tampilan dan Fungsi Manajemen Dinamis Terkait Eksekusi (Transact-SQL)
sys.dm_exec_query_memory_grants (T-SQL)