sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
gäller för: SQL Server 2016 (13.x) och senare Azure SQL DatabaseAzure SQL Managed Instance
Returnerar den aktuella statusen för resursskarforer som används för att minska samtidig frågeoptimering.
Spalt | Typ | Beskrivning |
---|---|---|
pool_id |
int | Resurspools-ID under Resource Governor |
name |
sysname | Kompilera gatenamn (liten gateway, medelstor gateway, stor gateway) |
max_count |
int | Maximalt konfigurerat antal samtidiga kompileringar |
active_count |
int | Det aktiva antalet kompiler i den här grinden |
waiter_count |
int | Antalet servitörer i den här grinden |
threshold_factor |
bigint | Tröskelvärdesfaktor som definierar den maximala minnesdel som används av frågeoptimering. För den lilla gatewayen anger threshold_factor den maximala minnesanvändningen för optimeraren i byte för en fråga innan den krävs för att få åtkomst i den lilla gatewayen. För den medelstora och stora gatewayen visar threshold_factor den del av det totala serverminnet som är tillgängligt för den här grinden. Den används som en divisor vid beräkning av tröskelvärdet för minnesanvändning för grinden. |
threshold |
bigint | Nästa tröskelminne i byte. Frågan krävs för att få åtkomst till den här gatewayen om minnesförbrukningen når det här tröskelvärdet.
-1 om frågan inte krävs för att få åtkomst till den här gatewayen. |
is_active |
bit | Om frågan krävs för att skicka den aktuella grinden eller inte. |
Behörigheter
SQL Server kräver tillståndsbehörighet för VIEW SERVER på servern.
Azure SQL Database kräver behörigheten VIEW DATABASE STATE i databasen.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Anmärkningar
SQL Server använder en nivåindelad gatewaymetod för att minska antalet tillåtna samtidiga kompileringar. Tre gatewayer används, inklusive små, medelstora och stora. Gatewayer hjälper till att förhindra uttömning av övergripande minnesresurser genom större kompileringsminneskrävande konsumenter.
Väntetider på en gateway resulterar i fördröjd kompilering. Förutom fördröjningar i kompileringen har minskade begäranden en associerad RESOURCE_SEMAPHORE_QUERY_COMPILE ackumulering av väntetyp. Den RESOURCE_SEMAPHORE_QUERY_COMPILE väntetypen kan tyda på att frågor använder en stor mängd minne för kompilering och att minnet är slut. Det kan också finnas tillräckligt med tillgängligt minne, men tillgängliga enheter i en specifik gateway är uttömda. Utdata från sys.dm_exec_query_optimizer_memory_gateways
kan användas för att felsöka scenarier där det inte fanns tillräckligt med minne för att kompilera en frågekörningsplan.
Exempel
A. Visa statistik om resursskarforer
Vilken är den aktuella minnesgatewaystatistiken för optimeraren för den här instansen av SQL Server?
SELECT [pool_id], [name], [max_count], [active_count],
[waiter_count], [threshold_factor], [threshold],
[is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;