Delen via


sys.dm_exec_query_resource_semaphores (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft de informatie terug over de huidige query-resource semafoorstatus in SQL Server. sys.dm_exec_query_resource_semaphores geeft een algemene query-uitvoeringsstatus en stelt je in staat te bepalen of het systeem toegang heeft tot voldoende geheugen. Deze weergave vult geheugeninformatie aan die van sys.dm_os_memory_clerks is verkregen om een volledig beeld te geven van de status van het servergeheugen. sys.dm_exec_query_resource_semaphores geeft één rij terug voor de reguliere resource semafore en een andere rij voor de small-query resource semafore. Er zijn twee vereisten voor een small-query semafore:

  • De aangevraagde geheugentoekenning moet minder zijn dan 5 MB

  • De querykosten moeten minder zijn dan 3 kosteneenheden

Opmerking

Gebruik de naam sys.dm_pdw_nodes_exec_query_resource_semaphoresom dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW). Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Description
resource_semaphore_id smallint Niet-unieke ID van de resource-semaphore. 0 voor de reguliere resource semafore en 1 voor de small-query resource semafore.
target_memory_kb bigint Geef het gebruiksdoel in kilobytes.
max_target_memory_kb bigint Maximaal potentieel doel in kilobytes. NULL voor de small-query resource semaphore.
total_memory_kb bigint Geheugen dat door de resource-semafoor wordt vastgehouden in kilobytes. Als het systeem onder geheugendruk staat of als vaak een geforceerd minimum geheugen wordt toegekend, kan deze waarde groter zijn dan de target_memory_kb of max_target_memory_kb waarden. Totaal geheugen is de som van beschikbare en toegekende geheugen.
available_memory_kb bigint Geheugen beschikbaar voor een nieuwe subsidie in kilobytes.
granted_memory_kb bigint Totaal toegekend geheugen in kilobytes.
used_memory_kb bigint Fysiek gebruikt een deel van het toegekende geheugen in kilobytes.
grantee_count int Aantal actieve aanvragen waarvan de subsidies zijn vervuld.
waiter_count int Aantal vragen die wachten op de beantwoording van subsidies.
timeout_error_count bigint Totaal aantal time-out fouten sinds het opstarten van de server. NULL voor de small-query resource semaphore.
forced_grant_count bigint Totaal aantal verplichte minimumgeheugentoekenningen sinds het opstarten van de server. NULL voor de small-query resource semaphore.
pool_id int ID van de resourcepool waartoe deze resourcesemafoor behoort.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Opmerkingen

Queries die dynamische beheerweergaven gebruiken die ORDER BY of aggregaten bevatten, kunnen het geheugenverbruik verhogen en zo bijdragen aan het probleem dat ze oplossen.

Gebruik sys.dm_exec_query_resource_semaphores voor probleemoplossing, maar neem het niet toe in applicaties die toekomstige versies van SQL Server zullen gebruiken.

De functie Resource Governor stelt een databasebeheerder in staat om serverbronnen te verdelen over resource pools, tot maximaal 64 pools. In SQL Server 2012 (11.x) en hoger gedraagt elke pool zich als een kleine, onafhankelijke serverinstantie en vereist 2 semafore.

Zie ook

uitvoeringsgerelateerde dynamische beheerweergaven en -functies (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)