sys.dm_exec_query_resource_semaphores (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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)