Aracılığıyla paylaş


sys.dm_exec_query_resource_semaphores (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

SQL Server'daki mevcut sorgu-kaynak semafor durumu hakkında bilgi döndürür. sys.dm_exec_query_resource_semaphores , genel sorgu-yürütme belleği durumunu sağlar ve sistemin yeterli belleğe erişip erişemeyeceğini belirlemenizi sağlar. Bu görünüm, sys.dm_os_memory_clerks tarafından alınan bellek bilgilerini tamamlayarak sunucu bellek durumunun tam bir resmini sağlar. sys.dm_exec_query_resource_semaphores , normal kaynak semaforu için bir satır, küçük sorgulu kaynak semaforu için ise başka bir satır döner. Küçük sorgulu semafor için iki şart vardır:

  • İstenen bellek miktarı 5 MB'den az olmalıdır

  • Sorgulama maliyeti 3 maliyet biriminden az olmalı

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform Sistemi'nden (PDW) çağırmak için sys.dm_pdw_nodes_exec_query_resource_semaphoresadını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Sütun adı Veri türü Description
resource_semaphore_id smallint Kaynak semaforunun benzersiz olmayan kimliği. 0, normal kaynak semaforu için ve 1, küçük sorgulu kaynak semaforu için ise 1.
target_memory_kb bigint Kullanım hedefini kilobayt cinsinden ver.
max_target_memory_kb bigint Maksimum potansiyel hedef kilobayt cinsinden. Küçük sorgulu kaynak semaforu için NULL.
total_memory_kb bigint Kaynak semaforu tarafından tutulan bellek kilobayt cinsinden. Sistem bellek baskısı altındaysa veya zorunlu minimum bellek sık verilirse, bu değer target_memory_kb veya max_target_memory_kb değerlerinden daha büyük olabilir. Toplam bellek, mevcut ve verilen hafızanın toplamıdır.
available_memory_kb bigint Yeni bir hibe için kilobayt cinsinden hafıza mevcut.
granted_memory_kb bigint Toplam verilen hafıza kilobayt cinsinden.
used_memory_kb bigint Fiziksel olarak verilen hafızanın bir kısmını kilobaytlarla kullandı.
grantee_count int Hibeleri karşılanan aktif sorguların sayısı.
waiter_count int Hibelerin karşılanmasını bekleyen sorgu sayısı.
timeout_error_count bigint Sunucu başlatıldığından beri toplam zaman aşımına uğramış hataların sayısı. Küçük sorgulu kaynak semaforu için NULL.
forced_grant_count bigint Sunucu başlatıldığından beri zorunlu minimum bellek bağışlamalarının toplam sayısı. Küçük sorgulu kaynak semaforu için NULL.
pool_id int Bu kaynak semaforunun ait olduğu kaynak havuzunun kimliği.
pdw_node_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.

Permissions

SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.

SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Açıklamalar

ORDER BY veya agregasyonları içeren dinamik yönetim görünümlerini kullanan sorgular, bellek tüketimini artırabilir ve böylece sorun gidermelerine katkıda bulunabilir.

Sorun giderme için sys.dm_exec_query_resource_semaphores kullanın ancak SQL Server'ın gelecekteki sürümlerini kullanacak uygulamalara dahil etmeyin.

Resource Governor özelliği, veritabanı yöneticisinin sunucu kaynaklarını en fazla 64 havuza kadar kaynak havuzları arasında dağıtmasını sağlar. SQL Server 2012 (11.x) ve üzerinde, her havuz küçük bağımsız bir sunucu örneği gibi davranır ve 2 semafor gerektirir.

Ayrıca Bkz.

Yürütmeyle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)