| Termin | Definicja |
|---|---|
| Query Store a indeksy | Query Store a indeksy — analiza historii planów pomaga ocenić, czy zmiana indeksu poprawiła wydajność zapytania. Jak Query Store pokazuje wpływ indeksu na plan zapytaniaQuery Store w Microsoft SQL Server zapisuje historię wykonywania zapytań, planów wykonania oraz zbiorczych statystyk wydajności. Dzięki temu analiza nie ogranicza się do obserwacji bieżącego planu w chwili wystąpienia problemu. Można porównać zachowanie tego samego zapytania przed utworzeniem indeksu, po jego utworzeniu, a także po zmianie lub usunięciu indeksu. W szczególności przydatne są informacje o czasie trwania, liczbie wykonań, zużyciu procesora, odczytach logicznych i zapisie, o ile dana statystyka jest gromadzona przez konfigurację Query Store i wersję używanego SQL Server. Indeks nie poprawia automatycznie każdego zapytania. Optymalizator może wybrać indeks wtedy, gdy jego koszt szacowany jest niższy od kosztu skanowania tabeli lub innego indeksu. Na wybór wpływają między innymi predykaty w klauzuli Porównanie planów przed i po zmianie indeksuAnalizę należy rozpocząć od identyfikacji konkretnego zapytania w Query Store, a nie od samej nazwy indeksu. To samo zapytanie może mieć wiele planów, ponieważ SQL Server dobiera plan zależnie od parametrów, statystyk, ustawień bazy danych i dostępnych indeksów. W historii można zestawić plan używany przed zmianą z planem zarejestrowanym po zmianie. Należy zwrócić uwagę, czy operator Samo wystąpienie operatora Statystyki wykonania i ryzyko błędnej interpretacjiQuery Store przechowuje statystyki w przedziałach czasowych, dlatego wyniki trzeba porównywać dla porównywalnych okresów i obciążeń. Średni czas trwania może ukryć sporadyczne, bardzo wolne wykonania, natomiast suma czasu może wskazywać zapytanie często uruchamiane, choć każde pojedyncze wykonanie trwa krótko. Przy ocenie indeksu należy analizować co najmniej liczbę wykonań, średni oraz maksymalny czas trwania, zużycie procesora i liczbę odczytów. Znaczenie ma także okres po wdrożeniu zmiany, ponieważ statystyki mogą wymagać czasu na zebranie reprezentatywnej próbki. Zmiana planu po utworzeniu indeksu nie zawsze oznacza, że indeks był jedyną przyczyną poprawy. W tym samym czasie mogły zmienić się statystyki, wartości parametrów, obciążenie systemu, ustawienia bazy albo dane w tabeli. Odwrotny problem również jest możliwy: nowy indeks może pomóc jednemu zapytaniu, ale zwiększyć koszt operacji Praktyczny tok oceny skuteczności indeksowaniaBezpieczna ocena obejmuje zapis stanu wyjściowego, utworzenie lub modyfikację indeksu, obserwację Query Store oraz porównanie wyników z okresem bazowym. Przydatne jest odnotowanie definicji zapytania, parametrów, czasu zmiany i oczekiwanego efektu. Po wdrożeniu należy sprawdzić, czy SQL Server zarejestrował nowy plan oraz czy poprawa występuje dla typowych wartości parametrów. Jeżeli plan jest niestabilny, sama średnia może być myląca, dlatego trzeba porównać poszczególne plany i rozkład wyników w czasie. Jeżeli nowy plan jest wyraźnie gorszy, Query Store może pomóc wykryć regresję i wskazać plan używany wcześniej. W SQL Server dostępne są mechanizmy wymuszania planu z poziomu Query Store, ale takie działanie powinno być traktowane jako środek kontrolny, a nie zamiennik analizy przyczyny. Należy równolegle sprawdzić statystyki, parametry zapytania, definicję indeksu i aktualne dane. W środowisku z laptopem lub komputerem PC analiza tego typu dotyczy zwykle oprogramowania bazodanowego zainstalowanego na urządzeniu albo problemu z wydajnością aplikacji korzystającej z SQL Server; diagnostyka powinna rozdzielać awarię sprzętu, konfiguracji systemu i samego silnika bazy danych. |