Udostępnij za pośrednictwem


Jak SQL Server dopasowuje Plan prowadnic do kwerend

SQL ServerDopasowuje plan prowadnice typ obiektu do kwerend, które występują wewnątrz procedura składowana, wyzwalacza lub funkcja (moduł) o nazwie w @ module_or_batch argumentu sp_create_plan_guide procedura składowana.Jeśli przewodnik planu istnieje w module, przewodnik planu dostosowanego do określonej kwerendy.

Dla kwerend przedłożone wewnątrz instancji SQL Server dopasowuje plan do nich przez pierwszej próby dopasowania kwerendy SQL na podstawie przewodnik planu, kolejne próby parameterize kwerendy i następnie przez ponowną.Następująca ilustracja zawiera przegląd tego procesu.

Jak program SQL Server dopasowuje wytyczne planu do zapytań

  1. SQL Serveroptymalizator kwerendy Rozpoznaje wsadowym wykonane jako żądanie skompilować każdej instrukcja w partia.

  2. Dla konkretnej instrukcja w partia SQL Server próbuje dopasować instrukcja SQL na podstawie przewodnik planu przewodnik, których @ module_or_batch argument zgodny z przychodzącego tekstu partia tym stała wartości literału; i których @ stmt dopasowuje także argument instrukcja w partia.Jeśli istnieje tego rodzaju przewodnik planu i dopasowanie powiedzie się, aby uwzględnić wskazówki kwerendy, określone w podręczniku plan modyfikacji tekstu instrukcja.Instrukcja jest następnie kompilowane odpowiednio.

  3. Jeśli przewodnik planu nie pasuje do instrukcja w kroku 2, SQL Server próbuje parameterize instrukcja przy użyciu zmuszony parametryzacja.W tym kroku Parametryzacja może się nie udać jednego z następujących powodów:

    1. Instrukcja jest już sparametryzowana lub zawiera zmienne lokalne.

    2. PARAMETRYZACJA PROSTY zestaw opcji baza danych jest stosowany (ustawienie domyślne), a nie ma żadnej prowadnicy plan typu szablonu, którego dotyczy instrukcja i określa WYMUSZONE PARAMETRYZACJA wskazówkę dotyczącą kwerendy.

    3. A przewodnik planu typu istnieje szablon, który stosuje się do instrukcja i określa PARAMETRYZACJA proste wskazówki dotyczącej kwerendy.

    Jeśli wymuszone parametryzacja powiedzie się, SQL Server próbuje dopasować sparametryzowana formie zestawienia do przewodnik planu typu SQL utworzonego na sparametryzowana instrukcja.Jeśli istnieje tego rodzaju przewodnik planu i dopasowanie powiedzie się, aby uwzględnić wskazówki kwerendy, określone w podręczniku plan modyfikacji tekstu instrukcja.Instrukcja jest następnie kompilowane odpowiednio.Jeśli dostosowanego żadnej prowadnicy plan sparametryzowana instrukcja jest kompilowany bez uprzedniego modyfikowany przez przewodnik planu.

  4. Jeśli w kroku 3, parametryzacja SQL Server próbuje ponownie instrukcja parameterize.To czas, SQL Server stosuje się zachowanie domyślne parametryzacja proste.Wynikowa kwerenda jest następnie kompilowane bezpośrednio.Plan guides nie są dopasowywane do wyniki parametryzacja proste.

    Ostrzeżenie

    Plan guides typ SQL, które dotyczą sparametryzowana przez wymuszone lub proste parametryzacji kwerendy wskazówkę dotyczącą kwerendy RECOMPILE jest ignorowana.Jest również ostrzeżenie.