Rozpocznij korzystanie z asystenta dostrajania zapytań (QTA)
Planujesz migrację dwóch produkcyjnych baz danych z programu SQL Server 2012 do nowego wystąpienia programu SQL Server 2022. Ponieważ bazy danych są używane, należy początkowo pozostawić poziomy zgodności w oryginalnych ustawieniach i wskazać ponownie aplikacje. Narzędzie do szacowania kardynalności zmieniło się od programu SQL Server 2014 i chcesz zmierzyć wydajność zapytań przed zmianą poziomu zgodności baz danych na SQL Server 2022 (160).
Należy znaleźć i naprawić wszystkie zapytania, które pogarszają się po zmianie poziomu zgodności oraz zastosowaniu nowego algorytmu szacowania kardynalności. Użycie tej metody określa punkt odniesienia wydajności w celu porównania po uaktualnieniu poziomu zgodności.
Włączenie magazynu zapytań zbiera metryki potrzebne do znalezienia zapytań powodujących regresję, a użycie Asystenta dostrajania zapytań (QTA) poprowadzi Cię przez proces naprawy tych zapytań. Ta jednostka zawiera omówienie Query Store i QTA.
Omówienie Query Store
Funkcja magazynu zapytań została wprowadzona w programie SQL Server 2016 w celu ciągłego zbierania informacji o wykonywaniu i wydajności zapytań w bazie danych. Magazyn zapytań działa jak rejestrator danych flight-data w celu zbierania informacji o czasie wykonywania zapytań i planów. Jeśli zapiszesz te dane środowiska uruchomieniowego, możesz śledzić wydajność w czasie. Jeśli coś pójdzie nie tak, istnieje historia informacji, aby odkryć przyczynę problemu.
Począwszy od programu SQL Server 2022 i w usługach Azure SQL Database i SQL Managed Instance magazyn zapytań jest domyślnie włączony dla nowych baz danych. W SQL Server 2016, SQL Server 2017 i SQL Server 2019, magazyn zapytań nie jest domyślnie włączony, ale każda baza danych w instancji SQL Server 2016 lub nowszej może mieć włączany, wyłączany i konfigurowany magazyn zapytań. Zapoznaj się z następną sekcją, aby uzyskać instrukcje dotyczące włączania Query Store lub sprawdzenia jego konfiguracji w bazie danych.
Magazyn zapytań może działać na bazach danych o wcześniejszych poziomach zgodności niż instancja SQL Server. Na przykład w przypadku migracji bazy danych z programu SQL Server 2012 do programu SQL Server 2022 i pozostawienia poziomu zgodności na poziomie 110 magazyn zapytań nadal może działać w bazie danych.
Jednak wiele funkcji inteligentnego przetwarzania zapytań i innych automatycznych ulepszeń wydajności jest włączanych tylko dla nowszych poziomów zgodności bazy danych. W związku z tym należy spróbować przetestować wydajność aplikacji na najnowszym poziomie zgodności bazy danych programu SQL Server. Magazyn zapytań i Asystent dostrajania zapytań mogą pomóc w przeprowadzaniu testów wydajnościowych.
Po włączeniu w bazie danych magazyn zapytań zbiera i zgłasza następujące statystyki dotyczące zapytań:
- Zapytania regresywne
- Ogólne użycie zasobów
- Zapytania zużywające najwięcej zasobów
- Zapytania z wymuszonymi planami
- Zapytania z dużą zmiennością
- Statystyki oczekiwania zapytań
- Śledzone zapytania
Zapytanie, które uległo regresji, występuje, gdy optymalizator zapytań używa nowego planu zapytania, który powoduje obniżenie wydajności. Regresja może wystąpić po ważnych zmianach, takich jak dodawanie, upuszczanie lub zmienianie indeksu, aktualizowanie statystyk lub zmienianie kardynalności danych.
Przed magazynem zapytań program SQL Server nie dostarczył wglądu w przyczynę regresji, a identyfikowanie problemów było problemem dla deweloperów baz danych i administratorów. Teraz możesz użyć Query Store, aby znaleźć zapytania, które się pogorszyły, i wymusić na optymalizatorze użycie konkretnego planu z historii.
Często zdarza się, że kilka z prawdopodobnie tysięcy zapytań zużywa większość zasobów systemowych. Magazyn zapytań określa, które zapytania mają największe zużycie, albo z powodu regresji, albo z powodu słabego dostrajania. W zależności od konfiguracji można filtrować wyniki według czasu trwania, procesora CPU, pamięci, operacji we/wy lub liczby wykonań.
Magazyn zapytań służy do monitorowania bieżącej wydajności i testowania A/B w celu porównania wydajności przed i po zastosowaniu pojedynczej zmiany. Na przykład możesz dostroić zapytanie pod kątem wydajności, dodając indeks do tabeli, do której odwołuje się zapytanie, dzięki czemu wyszukiwanie sprzężenia jest szybsze. Porównanie statystyk w magazynie zapytań przed i po dodaniu indeksu wskazuje, czy indeks wpływa na wydajność. Możesz również porównać statystyki po dodaniu nowego sprzętu lub zaktualizowaniu aplikacji.
Asystent dostrajania zapytań — omówienie
Asystent dostrajania zapytań (QTA) używa danych z magazynu zapytań w celu znalezienia zapytań, które zaczynają się pogarszać. Automatyczny Eksperymentator Zapytania (QTA) przeprowadza eksperymenty, aby znaleźć rozwiązanie, które zwiększa szybkość działania zapytania, zanim zacznie działać poniżej oczekiwań do tego stopnia, że wpływa na użytkowników.
Po uaktualnieniu można używać Magazynu Zapytań i Asystenta Optymalizacji Zapytań do monitorowania i optymalizacji wydajności bazy danych. Po przeprowadzeniu migracji bazy danych do programu SQL Server 2016 lub nowszego pozostaw poziom zgodności bazy danych bez zmian i włącz magazyn zapytań w celu zbierania statystyk wydajności zapytań bazowych.
Następnie zmienisz poziom zgodności i nadal będziesz używać danych magazynu zapytań do mierzenia statystyk wydajności zapytań. Możesz porównać statystyki, aby dowiedzieć się, czy każde zapytanie działa lepiej, to samo lub gorzej niż przed uaktualnieniem.
Po zmianie poziomu zgodności w celu uaktualnienia bazy danych program SQL Server zmienia wersję narzędzia do szacowania kardynalności, którego używa. Asystent zapytań wykrywa możliwe wzorce regresji zapytań spowodowane zmianą narzędzia do szacowania kardynalności oraz przeprowadza eksperymenty w celu znalezienia ulepszeń wydajności. Następnie możesz utworzyć przewodniki planu dla zapytań, które pokazują ulepszenia.
Streszczenie
Magazyn zapytań stale mierzy statystyki wydajności zapytań, podobnie jak rejestrator danych lotu samolotu przechwytuje działanie. Magazyn zapytań można włączyć w dowolnej bazie danych w programie SQL Server 2016 lub nowszym, niezależnie od poziomu zgodności. Magazyn zapytań umożliwia ciągłe monitorowanie wydajności zapytań oraz testowanie A/B w celu mierzenia skutków pojedynczej zmiany.
Podczas uaktualniania bazy danych do programu SQL Server 2014 lub nowszego zmiany w narzędziu do szacowania kardynalności mogą spowalniać zapytania, które były szybkie w poprzedniej wersji programu SQL Server. Najlepiej jest znaleźć i naprawić wszelkie regresje, zanim wpłyną one na użytkowników. Włączenie magazynu zapytań w bazach danych oznacza, że statystyki są stale zbierane dla zapytań. Następnie możesz użyć QTA, aby zidentyfikować i naprawić zapytania, które ulegają regresji, zanim staną się problemem.