Udostępnij za pośrednictwem


sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)

Dotyczy: SQL Server 2016 (13.x) i nowszych Azure SQL DatabaseAzure SQL Managed Instance

Zwraca bieżący stan semaforów zasobów używanych do zmniejszenia współbieżnej optymalizacji zapytań.

Kolumna Typ Opis
pool_id Identyfikator puli zasobów w obszarze Zarządca zasobów
name nazwa systemu Nazwa bramy kompilowania (mała brama, średnia brama, brama big gateway)
max_count Maksymalna skonfigurowana liczba współbieżnych kompilacji
active_count Obecnie aktywna liczba kompilacji w tej bramie
waiter_count Liczba kelnerów w tej bramie
threshold_factor bigint Współczynnik progowy, który definiuje maksymalną część pamięci używaną przez optymalizację zapytań. W przypadku małej bramy threshold_factor wskazuje maksymalne użycie pamięci optymalizatora w bajtach dla jednego zapytania, zanim będzie wymagane uzyskanie dostępu w małej bramie. W przypadku średniej i dużej bramy threshold_factor pokazuje część całkowitej pamięci serwera dostępnej dla tej bramy. Jest on używany jako dzielnika podczas obliczania progu użycia pamięci dla bramy.
threshold bigint Następna pamięć progowa w bajtach. Zapytanie jest wymagane, aby uzyskać dostęp do tej bramy, jeśli jego użycie pamięci osiągnie ten próg. -1, jeśli zapytanie nie jest wymagane do uzyskania dostępu do tej bramy.
is_active bitów Czy zapytanie jest wymagane do przekazania bieżącej bramy, czy nie.

Uprawnienia

Program SQL Server wymaga uprawnienia WYŚWIETL STAN SERWERA na serwerze.

Usługa Azure SQL Database wymaga uprawnienia WYŚWIETL STAN BAZY danych w bazie danych.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Uwagi

Program SQL Server używa warstwowej bramy w celu zmniejszenia liczby dozwolonych kompilacji współbieżnych. Używane są trzy bramy, w tym małe, średnie i duże. Bramy pomagają zapobiec wyczerpaniu ogólnych zasobów pamięci przez większe ilości pamięci wymagającej użytkowników kompilacji.

Oczekiwania na bramę powodują opóźnienie kompilacji. Oprócz opóźnień w kompilacji mniejsze żądania będą miały skojarzona RESOURCE_SEMAPHORE_QUERY_COMPILE akumulacja typu oczekiwania. Typ oczekiwania RESOURCE_SEMAPHORE_QUERY_COMPILE może wskazywać, że zapytania używają dużej ilości pamięci do kompilacji i że pamięć jest wyczerpana. Alternatywnie może być wystarczająca ilość dostępnej pamięci ogólnej, ale dostępne jednostki w określonej bramie są wyczerpane. Dane wyjściowe sys.dm_exec_query_optimizer_memory_gateways mogą służyć do rozwiązywania problemów ze scenariuszami, w których nie było wystarczającej ilości pamięci do skompilowania planu wykonywania zapytania.

Przykłady

A. Wyświetlanie statystyk dotyczących semaforów zasobów

Jakie są bieżące statystyki bramy pamięci optymalizatora dla tego wystąpienia programu 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;