Query Store po migracji — jak wykrywać regresje planów wykonania
Po migracji najgorsze problemy wydajnościowe nie zawsze pojawiają się od razu.
Często aplikacja działa poprawnie, ale pojedyncze zapytania zaczynają korzystać z gorszych planów. Query Store pozwala zobaczyć zmianę zamiast jej zgadywać.
Czy Query Store działa?
| |
Jeżeli Query Store przeszedł w tryb READ_ONLY, najpierw ustal dlaczego.
Jeden query_id, wiele planów
| |
Jeżeli po migracji pojawił się nowy plan, porównaj jego statystyki z wcześniejszym.
Co porównywać?
- duration,
- CPU,
- logical reads,
- liczbę wykonań,
- waity,
- rozkład parametrów.
Zmiana planu sama w sobie nie jest regresją. Regresją jest pogorszenie zachowania zapytania w reprezentatywnym obciążeniu.
Force plan — ostrożnie
| |
To może szybko ograniczyć skutki regresji, ale nie zastępuje analizy przyczyny.
Podsumowanie
Query Store jest szczególnie wartościowy wtedy, gdy system się zmienia.
Spokojny DBA nie pyta tylko: „czy jest wolno?”. Pyta: „co zmieniło się w zachowaniu konkretnego zapytania?”.