sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
platí pro: SQL Server 2016 (13.x) a novější azure SQL Databaseazure SQL Managed Instance
Vrátí aktuální stav semaphores prostředků, které se používají k omezení souběžné optimalizace dotazů.
Sloupec | Typ | Popis |
---|---|---|
pool_id |
int | ID fondu zdrojů v části Správce zdrojů |
name |
|
Název brány kompilace (malá brána, střední brána, velká brána) |
max_count |
int | Maximální nakonfigurovaný počet souběžných kompilací |
active_count |
int | Aktuálně aktivní počet kompilací v této bráně |
waiter_count |
int | Počet číšníků v této bráně |
threshold_factor |
bigint | Prahová hodnota, která definuje maximální část paměti používanou optimalizací dotazů. U malé brány threshold_factor označuje maximální využití paměti optimalizátoru v bajtech pro jeden dotaz předtím, než se vyžaduje pro získání přístupu v malé bráně. U střední a velké brány threshold_factor ukazuje část celkové paměti serveru dostupnou pro tuto bránu. Používá se jako dělitel při výpočtu prahové hodnoty využití paměti pro bránu. |
threshold |
bigint | Další prahová hodnota paměti v bajtech. Dotaz je nutný k získání přístupu k této bráně, pokud spotřeba paměti dosáhne této prahové hodnoty.
-1 , pokud se dotaz nevyžaduje pro získání přístupu k této bráně. |
is_active |
bitová | Určuje, jestli se dotaz vyžaduje k předání aktuální brány, nebo ne. |
Dovolení
SQL Server vyžaduje na serveru oprávnění ZOBRAZIT STAV SERVERU.
Azure SQL Database vyžaduje v databázi oprávnění ZOBRAZIT STAV DATABÁZE.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Poznámky
SQL Server používá přístup vrstvené brány ke snížení počtu povolených souběžných kompilací. Používají se tři brány, včetně malých, středních a velkých. Brány pomáhají zabránit vyčerpání celkových prostředků paměti tím, že větší kompilační paměť vyžadují příjemce.
Čekání na bránu způsobí zpožděnou kompilaci. Kromě zpoždění při kompilaci budou mít omezené požadavky přidruženou RESOURCE_SEMAPHORE_QUERY_COMPILE akumulace typu čekání. Typ čekání RESOURCE_SEMAPHORE_QUERY_COMPILE může znamenat, že dotazy k kompilaci používají velké množství paměti a že je paměť vyčerpána. Případně může být k dispozici dostatek paměti, ale dostupné jednotky v konkrétní bráně se vyčerpá. Výstup sys.dm_exec_query_optimizer_memory_gateways
lze použít k řešení potíží se scénáři, kdy nebylo dostatek paměti ke kompilaci plánu provádění dotazů.
Příklady
A. Zobrazení statistik o semaforech prostředků
Jaké jsou aktuální statistiky brány paměti optimalizátoru pro tuto instanci SQL Serveru?
SELECT [pool_id], [name], [max_count], [active_count],
[waiter_count], [threshold_factor], [threshold],
[is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;