Delen via


sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)

van toepassing op: SQL Server 2016 (13.x) en hoger Azure SQL DatabaseAzure SQL Managed Instance

Retourneert de huidige status van resourcesemaforen die worden gebruikt om gelijktijdige queryoptimalisatie te verminderen.

Kolom Type Beschrijving
pool_id Resourcegroep-id onder Resource Governor
name sysname- Naam van de poort compileren (kleine gateway, middelgrote gateway, grote gateway)
max_count Het maximum aantal geconfigureerde compilaties
active_count Het momenteel actieve aantal compileerts in deze poort
waiter_count Het aantal obers in deze poort
threshold_factor grote Drempelwaardefactor die het maximale geheugengedeelte definieert dat wordt gebruikt door queryoptimalisatie. Voor de kleine gateway geeft threshold_factor het maximale geheugengebruik van de optimalisatie in bytes voor één query aan voordat het nodig is om toegang te krijgen in de kleine gateway. Voor de middelgrote en grote gateway toont threshold_factor het gedeelte van het totale servergeheugen dat beschikbaar is voor deze poort. Het wordt gebruikt als deler bij het berekenen van de drempelwaarde voor geheugengebruik voor de poort.
threshold grote Volgende drempelwaarde geheugen in bytes. De query is vereist om toegang te krijgen tot deze gateway als het geheugenverbruik deze drempelwaarde bereikt. -1 als de query niet vereist is om toegang te krijgen tot deze gateway.
is_active bit Of de query vereist is om de huidige poort door te geven of niet.

Machtigingen

SQL Server vereist de machtiging VIEW SERVER STATE op de server.

Azure SQL Database vereist de machtiging VIEW DATABASE STATE in de database.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Opmerkingen

SQL Server maakt gebruik van een gelaagde gatewaybenadering om het aantal toegestane gelijktijdige compilaties te verminderen. Er worden drie gateways gebruikt, waaronder kleine, middelgrote en grote gateways. Gateways helpen voorkomen dat de totale geheugenbronnen worden uitgeput door grotere gebruikers die geheugen nodig hebben voor compilatiegeheugen.

Wachten op een gateway resulteert in vertraagde compilatie. Naast vertragingen in compilatie hebben gereduceerde aanvragen een gekoppelde RESOURCE_SEMAPHORE_QUERY_COMPILE accumulatie van wachttypen. Het RESOURCE_SEMAPHORE_QUERY_COMPILE wachttype kan erop wijzen dat query's een grote hoeveelheid geheugen gebruiken voor compilatie en dat geheugen uitgeput is. Er kan ook voldoende geheugen beschikbaar zijn in het algemeen, maar beschikbare eenheden in een specifieke gateway zijn uitgeput. De uitvoer van sys.dm_exec_query_optimizer_memory_gateways kan worden gebruikt voor het oplossen van problemen met scenario's waarbij er onvoldoende geheugen was om een queryuitvoeringsplan te compileren.

Voorbeelden

Een. Statistieken over resourcesemaforen weergeven

Wat zijn de huidige statistieken van de optimizer-geheugengateway voor dit exemplaar van 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;