Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wygenerować plan wykonania w SQL Server

Plany wykonywania zapytań SQL są generowane, gdy optymalizator zapytań określa najbardziej wydajny sposób dostarczania danych żądanych przez zapytanie. Plany te są reprezentacją operacji bazy danych wykonywanych przez zapytanie, pokazując, jakich obiektów używa zapytanie, rodzaje zastosowań i jak są używane.

Powszechnie wiadomo, że słabe wyniki zapytań są kluczowym wskaźnikiem, że coś jest nie tak w bazie danych. Tak więc spoglądanie „pod maskę” na plan wykonania zapytania jest jednym z najlepszych sposobów ustalenia przyczyny problemu z wydajnością.

Informacje dostępne w planie wykonania SQL są nieocenione dla administratorów baz danych, którzy rozwiązują problemy z wydajnością zapytań SQL Server, ponieważ pozwalają im dotrzeć do głównej przyczyny problemu i dostroić zapytanie w razie potrzeby.

Badanie planów wykonania SQL jest jednym z pierwszych kroków w dostrajaniu wydajności, ponieważ plan wyraźnie wskazuje najbardziej prawdopodobne źródła problemów w zapytaniu, w tym drogie operatory, niezwykłą liczbę rekordów przepływających między operatorami i dodatkowe operatory.

Administratorzy baz danych korzystają również z ostrzeżeń planu wykonania, które ostrzegają użytkowników o problemach, takich jak wycieki danych tempdb i brakujące indeksy.

Rodzaje planów wykonania SQL

Istnieją dwa główne typy planów wykonania SQL:szacunkowe plany wykonania i rzeczywiste plany szacowania.

Szacunkowe plany wykonania najlepiej opisać jako rodzaj prognozy pogody. Jak sama nazwa wskazuje, szacowane plany wykonania używają przybliżonych obliczeń, statystyk i innych parametrów do oszacowania kroków, które może wykonać aparat SQL Server w celu wykonania przesłanego zapytania po przeanalizowaniu zapytania.

Nie musisz wykonywać zapytania, aby wygenerować tego typu plan wykonania, więc jest to dobre dla złożonych zapytań, dla których wygenerowanie rzeczywistego planu wykonania zajęłoby dużo czasu.

Rzeczywiste plany wykonania wykonują przesłane zapytanie, a następnie wyświetlają kroki, które wystąpiły podczas wykonywania. Ten typ planu wyświetla rzeczywiste obliczenia i rzeczywiste (nie szacowane) kroki, po których następuje silnik SQL Server.

Ponieważ ten typ planu wykonania faktycznie uruchamia zapytanie, jest to dobry wybór do rozwiązywania problemów z wydajnością zapytań.

Jak wygenerować plan wykonania SQL

Hackernoon zawiera zwięzły opis sposobu generowania szacunkowych i rzeczywistych planów wykonania. Proces można sprowadzić do następujących kroków:

Wygeneruj szacunkowy plan wykonania

  • Przejdź do bazy danych
  • Zaznacz zapytanie
  • Kliknij „Zapytanie”
  • Kliknij „Wyświetl szacunkowy plan wykonania” lub użyj skrótu Ctrl + L

Wygeneruj rzeczywisty plan wykonania

  • Przejdź do bazy danych
  • Zaznacz zapytanie
  • Kliknij „Zapytanie”
  • Kliknij „Dołącz rzeczywisty plan wykonania” lub użyj skrótu Ctrl + M

Szczegółowe wyjaśnienie, jak generować szacunkowe plany wykonania i rzeczywiste plany wykonania, znajdziesz w oficjalnej dokumentacji Microsoft.

Dlaczego szacunkowe i rzeczywiste plany wykonania SQL mogą się różnić

Generalnie szacunkowe i faktyczne plany wykonawcze będą zbliżone. Jednak zdarzają się sytuacje, kiedy są różne. Jest to normalne i występuje, ponieważ statystyki bazy danych i rzeczywiste dane są różne. Różnice te można wprowadzić kilkoma kanałami:

Równoległość

Koszt planu może spowodować utworzenie dwóch planów wykonania dla przesłanego zapytania. Silnik SQL Server wybierze, czy użyć planu równoległego, czy nie, więc możliwe jest, że jeden plan będzie korzystał z planu równoległego, a drugi z planu szeregowego.

Nieaktualne statystyki

Po wstawieniu danych i usunięciu danych z tabel i indeksów lub zmianie tabeli lub schematu indeksu statystyki ulegną zmianie. Jeśli statystyki nie są regularnie aktualizowane, rzeczywisty plan wykonania będzie się różnić od szacowanego planu wykonania.

Nieprawidłowy szacowany plan

Jeśli zapytanie zawiera instrukcję, która wymaga tabeli tymczasowej, która istnieje tylko wtedy, gdy zapytanie jest wykonywane, wygenerowanie szacowanego planu wykonania spowoduje powstanie błędu, ponieważ żadne zapytanie nie zostało wykonane. To samo zapytanie działałoby dobrze w rzeczywistym planie wykonania, ponieważ zapytanie zostało wykonane.

Plany wykonania SQL są cennym źródłem rozwiązywania problemów z wydajnością SQL Server. Wiedza o tym, jak generować zarówno szacunkowe, jak i rzeczywiste plany wykonania SQL, jest niezbędnym narzędziem dla każdego DBA, którego zadaniem jest dostrajanie zapytań w celu uzyskania optymalnej wydajności.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje sposób na osadzenie raportów i pulpitów nawigacyjnych Power Bi w aplikacji desktopowej vb.net lub C# z bazą danych sql Server 2008?

  2. SQL:Wybierz 3 najlepsze rekordy + Suma ilości

  3. przekonwertuj numer seryjny daty Excel na zwykłą datę

  4. Jak przekonwertować bigint (sygnaturę czasową UNIX) na datę i godzinę w programie SQL Server?

  5. Instalacja klastra pracy awaryjnej serwera SQL -4