Udostępnij za pomocą


Jak magazyn zapytań zbiera dane

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database w usłudze Microsoft Fabric

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 Query Store
Wyświetl opisy

View Description
sys.query_store_query_text Przedstawia unikatowe teksty zapytań wykonywane w bazie danych. Komentarze i spacje przed tekstem zapytania i po nim są ignorowane. Komentarze i spacje wewnątrz tekstu nie są ignorowane. Każde polecenie w pakiecie generuje oddzielny wpis 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 Query Store, ponieważ context_settings_id stanowi część klucza zapytania.
sys.query_store_query Wpisy zapytań, które są śledzone i wymuszane oddzielnie w sklepie zapytań. Pojedynczy tekst zapytania może generować wiele wpisów zapytania, jeśli jest wykonywany w różnych ustawieniach kontekstowych lub czy jest wykonywany poza bądź w ramach 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 równoważny temu, który uzyskujesz za pomocą 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 czasów wykonania 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ń.

Przetwarzanie zapytań

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

  1. Gdy zapytanie SQL jest kompilowane po raz pierwszy, tekst zapytania i początkowy plan są wysyłane do Query Store.

  2. Gdy zapytanie zostanie ponownie skompilowane, plan zostanie zaktualizowany w Query Store. Jeśli zostanie utworzony nowy plan, Query Store doda nowy wpis planu dla zapytania, a poprzednie wpisy zostaną zachowane wraz z ich statystykami wykonywania.

  3. Po wykonaniu zapytania statystyki uruchomieniowe 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 tego wymuszonego, następuje ponowna kompilacja zapytania. 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 przejrzysty dla użytkownika aplikacji.

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

Proces repozytorium 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 jako Plan Store na poniższym diagramie, są przekazywane 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 czasu wykonania, które zostały zebrane, ale nie zostały jeszcze utrwalone, do przedziału czasu zdefiniowanego za pomocą DATA_FLUSH_INTERVAL_SECONDS. 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 Query Store naruszył maksymalny limit rozmiaru między kontrolami 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 z magazynu zapytań dane w pamięci i na dysku są ujednolicone w sposób transparentny.

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

Informacje o planie procesów Repozytorium Zapytań

Zobacz także

Monitorowanie wydajności przy użyciu magazynu zapytań
Najlepsze praktyki dotyczące Query Store
widoki wykazu magazynu zapytań zapytań (Transact-SQL)