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

Eksport danych z Query Store

Termin Definicja
Eksport danych z Query Store

Eksport danych z Query Store to proces zapisu zgromadzonej historii statystyk wykonania zapytań do zewnętrznego pliku.

Zakres danych dostępnych w Query Store

Eksport danych z Query Store w Microsoft SQL Server polega na odczytaniu zapisanych informacji z katalogowych widoków systemowych i zapisaniu ich poza bazą danych. Query Store przechowuje historię zapytań, planów wykonania oraz statystyk wykonania, dzięki czemu można porównywać działanie tego samego zapytania w różnych okresach. Dane są przypisane do konkretnej bazy danych, w której włączono Query Store, a nie do całej instancji SQL Server jako jednego wspólnego repozytorium.

Najczęściej wykorzystywane widoki to sys.query_store_query_text, sys.query_store_query, sys.query_store_plan, sys.query_store_runtime_stats oraz sys.query_store_runtime_stats_interval. Widok tekstów zawiera treść zapytań, widok zapytań wiąże tekst z kontekstem obiektu i ustawieniami kompilacji, widok planów opisuje zapisane plany wykonania, a widoki statystyk przechowują wartości zagregowane dla określonych przedziałów czasu. Eksport powinien zachować identyfikatory relacji, takie jak query_id, plan_id i runtime_stats_interval_id, ponieważ dopiero ich połączenie pozwala odtworzyć pełny obraz zapytania, planu i jego wyników.

Odczyt i przygotowanie spójnego zestawu

Przed zapisaniem danych należy ustalić zakres czasowy oraz zestaw kolumn potrzebnych do późniejszej analizy. Statystyki wykonania są powiązane z przedziałami czasu, dlatego eksport obejmujący tylko plany albo tylko teksty zapytań będzie niepełny. Przykładowe zapytanie może połączyć sys.query_store_query_text z sys.query_store_query, następnie z sys.query_store_plan, a statystyki z sys.query_store_runtime_stats połączyć z przedziałami z sys.query_store_runtime_stats_interval. Filtrowanie po start_time i end_time umożliwia ograniczenie eksportu do wskazanego okresu.

W statystykach Query Store znajdują się między innymi liczba wykonań, średni, minimalny i maksymalny czas trwania, zużycie procesora, odczyty logiczne oraz zapisy logiczne, zależnie od wersji SQL Server i dostępnych kolumn danego widoku. Warto odróżnić wartości średnie od wartości całkowitych oraz sprawdzić jednostki: czas trwania i zużycie procesora są przechowywane w mikrosekundach, natomiast odczyty i zapisy dotyczą liczby stron. Przy eksporcie należy także uwzględnić, że jedna kwerenda może mieć wiele planów, a jeden plan może występować w wielu przedziałach agregacji.

Metody zapisu do pliku i ograniczenia eksportu

SQL Server nie traktuje eksportu Query Store jako pojedynczej komendy zapisującej całą zawartość do dowolnego pliku. Dane można najpierw zwrócić instrukcją SELECT, zapisać do tabeli roboczej albo tabeli docelowej, a następnie wyeksportować narzędziem obsługującym wynik zapytania. W środowisku Windows często stosuje się narzędzie bcp z zapytaniem wykonywanym w kontekście określonej bazy. Możliwe jest również użycie kreatora importu i eksportu w SQL Server Management Studio, skryptu PowerShell albo rozwiązania ETL, o ile zachowuje ono typy danych i kodowanie tekstu zapytań.

Plany wykonania wymagają osobnego potraktowania. W widoku sys.query_store_plan plan jest przechowywany w kolumnie zawierającej reprezentację XML, więc eksport do CSV może zmienić sposób interpretacji znaków cudzysłowu, przecinków i znaków nowego wiersza. Bezpieczniejszy bywa format tabelaryczny lub plik obsługujący kolumny tekstowe bez niejawnego rozdzielania zawartości. Eksport nie powinien być wykonywany bez kontroli uprawnień, ponieważ teksty zapytań mogą zawierać nazwy obiektów, parametry, komentarze albo inne informacje ujawniające szczegóły aplikacji. Sam eksport nie usuwa danych z Query Store i nie zmienia planu używanego przez optymalizator.

Weryfikacja kompletności i użycie kopii

Po zapisaniu pliku należy sprawdzić liczbę rekordów, zakres najstarszych i najnowszych przedziałów czasu oraz liczbę unikalnych wartości query_id i plan_id. Przydatna jest także kontrola rekordów bez odpowiadającego tekstu zapytania, planu albo przedziału statystyk. Brak takich powiązań może wynikać z błędnego zapytania eksportującego, niepełnego zakresu tabeli roboczej albo różnic między strukturą Query Store w poszczególnych bazach. Kopia eksportowa jest materiałem analitycznym; nie przywraca automatycznie Query Store do innej bazy i nie powinna być utożsamiana z kopią zapasową bazy danych.

Przy porównywaniu eksportów z różnych dni trzeba zachować informację o nazwie bazy, instancji, czasie wykonania eksportu oraz wersji SQL Server. Identyfikatory Query Store mają znaczenie przede wszystkim w obrębie konkretnej bazy i nie powinny być bez sprawdzenia traktowane jako uniwersalne identyfikatory między środowiskami. Analiza kopii może pomóc wykryć zmianę planu, wzrost czasu wykonania albo zwiększenie zużycia zasobów, ale wnioski wymagają uwzględnienia okresu agregacji, ustawień przechowywania danych i tego, czy Query Store działał w trybie rejestrowania danych.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę