Sdílet prostřednictvím


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 sysname 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;