sys.dm_exec_query_resource_semaphores (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar informationen om den aktuella statusen för fråge-resurssemaforen i SQL Server. sys.dm_exec_query_resource_semaphores ger allmän minnesstatus för frågeexekvering och låter dig avgöra om systemet kan komma åt tillräckligt med minne. Denna vy kompletterar minnesinformation som erhållits från sys.dm_os_memory_clerks för att ge en komplett bild av serverminnesstatusen. sys.dm_exec_query_resource_semaphores returnerar en rad för den vanliga resurssemaforen och en annan rad för resurssemaforen med små frågor. Det finns två krav för en semafor med små frågor:

  • Minnesbeviljningen som begärs bör vara mindre än 5 MB

  • Sökkostnaden bör vara mindre än 3 kostnadsenheter

Anmärkning

Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_exec_query_resource_semaphores. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
resource_semaphore_id smallint Icke-unik identifiering av resurssemaforen. 0 för den vanliga resurssemaforen och 1 för den lilla resurssemaforen.
target_memory_kb bigint Giv användningsmål i kilobyte.
max_target_memory_kb bigint Maximalt potentiellt mål i kilobyte. NULL för small-query-resurssemaforen.
total_memory_kb bigint Minnet hålls av resurssemaforen i kilobyte. Om systemet är under minnespress eller om tvingat minimiminne ofta ges kan detta värde vara större än target_memory_kb- eller max_target_memory_kb-värdena. Totalt minne är summan av tillgängligt och beviljat minne.
available_memory_kb bigint Minne tillgängligt för ett nytt bidrag i kilobyte.
granted_memory_kb bigint Totalt beviljat minne i kilobyte.
used_memory_kb bigint Fysiskt använd en del av det beviljade minnet i kilobyte.
grantee_count int Antal aktiva förfrågningar som får sina bidrag uppfyllda.
waiter_count int Antal frågor som väntar på att bidrag ska besvaras.
timeout_error_count bigint Totalt antal timeout-fel sedan serverstart. NULL för small-query-resurssemaforen.
forced_grant_count bigint Totalt antal tvingade minimiminnesbeviljanden sedan serverstart. NULL för small-query-resurssemaforen.
pool_id int ID för resurspoolen som denna resurssemafor tillhör.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anmärkningar

Frågor som använder dynamiska hanteringsvyer som inkluderar ORDER BY eller aggregat kan öka minnesförbrukningen och därmed bidra till det problem de felsöker.

Använd sys.dm_exec_query_resource_semaphores för felsökning men inkludera det inte i applikationer som kommer att använda framtida versioner av SQL Server.

Funktionen Resource Governor gör det möjligt för en databasadministratör att fördela serverresurser mellan resurspooler, upp till maximalt 64 pooler. I SQL Server 2012 (11.x) och senare beter sig varje pool som en liten oberoende serverinstans och kräver 2 semaforer.

Se även

Körningsrelaterade vyer och funktioner för dynamisk hantering (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)