Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

SYS.query_store_runtime_stats_interval

Termin Definicja
SYS.query_store_runtime_stats_interval

sys.query_store_runtime_stats_interval definiuje przedziały czasowe, dla których agregowane są statystyki Query Store.

Rola widoku sys.query_store_runtime_stats_interval

sys.query_store_runtime_stats_interval jest katalogowym widokiem systemowym programu Microsoft SQL Server związanym z mechanizmem Query Store. Udostępnia informacje o przedziałach czasu, w których silnik agreguje dane o wykonaniach zapytań. Każdy rekord opisuje jeden taki przedział i zawiera między innymi identyfikator przedziału oraz jego czas rozpoczęcia i zakończenia. Sam widok nie przechowuje pełnych tekstów zapytań ani planów wykonania. Służy do określenia ram czasowych, z którymi należy połączyć statystyki znajdujące się w innych widokach Query Store.

Informacje z tego widoku są używane przede wszystkim razem z sys.query_store_runtime_stats. Tabela statystyk wykonania odwołuje się do przedziału za pomocą runtime_stats_interval_id. Dzięki temu można ustalić, czy określona liczba wykonań, średni czas trwania, zużycie procesora albo liczba odczytów dotyczy konkretnej godziny, dnia lub innego skonfigurowanego odcinka czasu. Bez powiązania z widokiem interwałów wartości agregowane w Query Store byłyby trudniejsze do interpretacji, ponieważ nie wiadomo byłoby, jakiego okresu dotyczą.

Jak SQL Server wyznacza okres agregowania

Długość przedziału jest konfigurowana dla Query Store za pomocą opcji INTERVAL_LENGTH_MINUTES w instrukcji ALTER DATABASE ... SET QUERY_STORE. W SQL Server wartość tej opcji określa liczbę minut przypadających na jeden przedział agregacji. Domyślnie używana jest wartość 60 minut, a konfiguracja pozwala wybrać jedną z zamkniętego zestawu wartości: 1, 5, 10, 15, 30, 60 lub 1440 minut. Zmiana tej opcji wpływa na sposób grupowania kolejnych danych runtime, dlatego nie należy porównywać statystyk bez uwzględnienia aktualnej konfiguracji bazy danych.

Przedział czasu nie jest pojedynczym pomiarem konkretnego uruchomienia. W jego obrębie SQL Server gromadzi i agreguje dane dla zapytań oraz planów zapisanych w Query Store. W zależności od ustawień oraz dostępności danych jeden przedział może zawierać wiele wykonań, a dla rzadko uruchamianego zapytania tylko niewielką liczbę obserwacji. Krótsze interwały pozwalają dokładniej wskazać moment wystąpienia wzrostu obciążenia, natomiast dłuższe bardziej wygładzają krótkotrwałe wahania i ograniczają liczbę rekordów potrzebnych do analizy.

Łączenie interwału ze statystykami wykonania

Praktyczna analiza wymaga połączenia sys.query_store_runtime_stats_interval z sys.query_store_runtime_stats, a następnie z obiektami opisującymi zapytanie i plan. W statystykach wykonania znajdują się między innymi identyfikatory zapytania i planu, liczba wykonań oraz zagregowane wartości dotyczące czasu trwania, procesora, odczytów logicznych, zapisów i czasu oczekiwania. Interwał dostarcza natomiast informacji, kiedy dana agregacja obowiązywała. Takie połączenie pozwala zbudować chronologiczny obraz zachowania konkretnego zapytania.

Podczas odczytu należy zwracać uwagę na to, że statystyki runtime mogą być podzielone według typu wykonania, w tym wykonań zakończonych powodzeniem oraz wykonań przerwanych lub zakończonych błędem. W SQL Server Query Store może również przechowywać osobne dane dla różnych planów tego samego zapytania. Dlatego filtrowanie wyłącznie po identyfikatorze zapytania może połączyć wyniki pochodzące z wielu planów i utrudnić ocenę regresji. Do precyzyjnego porównania należy uwzględnić co najmniej przedział czasu, identyfikator zapytania oraz identyfikator planu.

Wykorzystanie widoku w analizie zmian wydajności

Widok sys.query_store_runtime_stats_interval pomaga odróżnić stały problem wydajności od krótkiego zdarzenia. Porównanie kolejnych przedziałów może pokazać, że średni czas trwania wzrósł dopiero po zmianie planu, zwiększeniu liczby wykonań albo pojawieniu się większej liczby oczekiwań. Sam interwał nie wyjaśnia przyczyny spowolnienia, ale porządkuje dane czasowo i wskazuje, w którym okresie należy sprawdzić plan wykonania, konfigurację bazy oraz obciążenie systemu.

W przypadku niezgodności wyników warto sprawdzić zakres przechowywania Query Store, czas ostatniego odświeżenia danych oraz to, czy analizowane przedziały są już zamknięte. Dane z bieżącego przedziału mogą być jeszcze aktualizowane, więc ich wartości nie muszą być ostateczne. Należy również pamiętać, że usunięcie danych Query Store lub zmiana konfiguracji przechowywania wpływa na dostępność historycznych rekordów. Prawidłowe użycie tego widoku polega zatem na traktowaniu go jako osi czasu dla zagregowanych statystyk wykonania, a nie jako niezależnego raportu o pojedynczym uruchomieniu zapytania.