Udostępnij za pośrednictwem


Jak magazyn zapytań zbiera dane

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsBaza danych SQL w usłudze Microsoft Fabric (wersja zapoznawcza)

Magazyn zapytań programu SQL Server działa podobnie jak rejestrator danych lotu, stale zbierając informacje kompilowania i środowiska uruchomieniowego związane z zapytaniami i planami. Dane związane z zapytaniami są utrwalane w tabelach wewnętrznych i prezentowane użytkownikom za pośrednictwem zestawu widoków.

Views

Na poniższym diagramie przedstawiono widoki magazynu zapytań i ich relacje logiczne z informacjami o czasie kompilacji przedstawionymi jako niebieskie jednostki:

Widoki procesów magazynu
View descriptions

View Description
sys.query_store_query_text Przedstawia unikatowe teksty zapytań wykonywane względem bazy danych. Komentarze i spacje przed tekstem zapytania i po nim są ignorowane. Komentarze i spacje wewnątrz tekstu nie są ignorowane. Każda instrukcja w partii generuje oddzielny wpis tekstowy zapytania.
sys.query_context_settings Przedstawia unikatowe kombinacje ustawień wpływających na plan, w których są wykonywane zapytania. Ten sam tekst zapytania wykonywany z różnymi ustawieniami wpływającymi na plan tworzy oddzielny wpis zapytania w magazynie zapytań, ponieważ context_settings_id jest częścią klucza zapytania.
sys.query_store_query Wpisy zapytań śledzone i wymuszane oddzielnie w magazynie zapytań. Pojedynczy tekst zapytania może generować wiele wpisów zapytania, jeśli jest wykonywany w różnych ustawieniach kontekstu lub czy jest wykonywany na zewnątrz, a wewnątrz różnych modułów Transact-SQL, takich jak procedury składowane i wyzwalacze.
sys.query_store_plan Przedstawia szacowany plan zapytania ze statystykami czasu kompilacji. Zapisany plan jest odpowiednikiem planu, który otrzymujesz przy użyciu polecenia SET SHOWPLAN_XML ON.
sys.query_store_runtime_stats_interval Magazyn zapytań dzieli czas na automatycznie generowane przedziały czasu (interwały) i przechowuje zagregowane statystyki w tym interwale dla każdego wykonanego planu. Rozmiar interwału jest kontrolowany przez opcję konfiguracji Statistics Collection Interval (w programie Management Studio) lub INTERVAL_LENGTH_MINUTES przy użyciu alter DATABASE SET Options (Transact-SQL).
sys.query_store_runtime_stats Zagregowane statystyki środowiska uruchomieniowego dla wykonanych planów. Wszystkie przechwycone metryki są wyrażane w postaci czterech funkcji statystyk: Average, Minimum, Maximum i Standard Deviation.

Aby uzyskać więcej informacji na temat widoków magazynu zapytań, zobacz sekcję "Powiązane widoki, funkcje i procedury" monitorowania wydajności przy użyciu magazynu zapytań.

Query processing

Magazyn zapytań współdziała z potokiem przetwarzania zapytań w następujących kluczowych punktach:

  1. Gdy zapytanie jest kompilowane po raz pierwszy, tekst zapytania i początkowy plan są wysyłane do magazynu zapytań.

  2. Gdy zapytanie zostanie ponownie skompilowane, plan zostanie zaktualizowany w magazynie zapytań. Jeśli zostanie utworzony nowy plan, magazyn zapytań doda nowy wpis planu dla zapytania i zachowa poprzednie wraz ze statystykami wykonywania.

  3. Po wykonaniu zapytania statystyki środowiska uruchomieniowego są wysyłane do magazynu zapytań. Magazyn zapytań zachowuje zagregowane statystyki dokładne dla każdego planu, który został wykonany w aktualnie aktywnym interwale.

  4. Podczas kompilowania i sprawdzania faz ponownego kompilowania program SQL Server określa, czy istnieje plan w magazynie zapytań, który ma być stosowany dla aktualnie uruchomionego zapytania. Jeśli istnieje wymuszony plan, a plan w pamięci podręcznej procedury różni się od wymuszonego planu, zapytanie zostanie ponownie skompilowane. Jest to w rzeczywistości taki sam sposób, jak w przypadku zastosowania WSKAZÓWKI PLANU do tego zapytania. Ten proces odbywa się w sposób niewidoczny dla aplikacji użytkownika.

Na poniższym diagramie przedstawiono punkty integracji opisane w poprzednich krokach:

Proces magazynu zapytań

Remarks

Aby zminimalizować obciążenie we/wy, nowe dane są przechwytywane w pamięci. Operacje zapisu są następnie kolejkowane i opróżniane na dysk. Informacje o zapytaniach i planie, pokazane na poniższym diagramie, są opróżniane z minimalnym opóźnieniem. Statystyki środowiska uruchomieniowego, wyświetlane jako statystyki środowiska uruchomieniowego, są przechowywane w pamięci przez okres zdefiniowany przy DATA_FLUSH_INTERVAL_SECONDS użyciu opcji instrukcji SET QUERY_STORE . Możesz użyć okna dialogowego Magazyn zapytań programu Management Studio, aby wprowadzić wartość interwału opróżniania danych (w minutach), która jest wewnętrznie konwertowana na sekundy.

Plan procesu magazynu

Jeśli system ulegnie awarii lub nastąpi zamknięcie podczas korzystania z flagi śledzenia 7745, magazyn zapytań może utracić dane środowiska uruchomieniowego, które zostały zebrane, ale nie zostały jeszcze utrwalone, do przedziału czasu zdefiniowanego za pomocą DATA_FLUSH_INTERVAL_SECONDSpolecenia . Zalecamy wartość domyślną 900 sekund (15 minut) jako równowagę między wydajnością przechwytywania zapytań a dostępnością danych.

Important

Limit maksymalnego rozmiaru (MB) nie jest ściśle wymuszany. Rozmiar magazynu jest sprawdzany tylko wtedy, gdy magazyn zapytań zapisuje dane na dysku. Ten interwał jest ustawiany przez wartość Interwał opróżniania danych . Jeśli magazyn zapytań naruszył maksymalny limit rozmiaru między sprawdzaniem rozmiaru magazynu, przechodzi do trybu tylko do odczytu. Jeśli tryb oczyszczania opartego na rozmiarze jest włączony, mechanizm oczyszczania w celu wymuszenia maksymalnego limitu rozmiaru jest również wyzwalany.

Note

Jeśli system jest pod obciążeniem pamięci, statystyki środowiska uruchomieniowego można opróżnić na dysk wcześniej niż zdefiniowano za pomocą polecenia DATA_FLUSH_INTERVAL_SECONDS.

Podczas odczytu danych magazynu zapytań dane w pamięci i na dysku są ujednolicone w sposób niewidoczny.

Jeśli sesja zostanie zakończona lub aplikacja kliencka zostanie uruchomiona ponownie lub ulegnie awarii, statystyki zapytań nie zostaną zarejestrowane.

Informacje o planie procesu magazynu

See also

Monitorowanie wydajności przy użyciu magazynu zapytań
Najlepsze rozwiązanie w przypadku magazynu zapytań
widoki wykazu magazynu zapytań zapytań (Transact-SQL)