Understanding Plan Forcing
Wskazówki dotyczącej kwerendy USE PLAN może służyć do wymuszenia optymalizator kwerendy, aby użyć planu kwerendy dla kwerendy.Wskazówka dotycząca kwerendy USE PLAN działa akceptując planu kwerend, który ma być używany w formacie XML jako argumentu.USE PLAN może służyć do kwerendy, których planów powoduje powolne czasów wykonania, ale dla których wiesz, lepiej planów istnieje.Kwerendy, które są wykonywane również w starszej wersja programu może się wiązać z zwykłego scenariusza SQL Server, ale słabo wykonywać w uaktualnionej wersja, czy jest to uaktualnienie do dodatku usługa pack lub aktualizacji pełnej wersja. W większości przypadków, uaktualnienie prowadzi do równe lub lepszą wydajność w większości czasów wykonania kwerendy, jednak może być kilka wyjątków.Wskazówka dotycząca kwerendy USE PLAN jest dostępny do obsługi tych przypadków, gdy plan kwerend, wybranego przez optymalizator kwerendy w starszej wersja produktu jest preferowana przez język wybrany po uaktualnieniu.
Wskazówki dotyczącej kwerendy USE PLAN może być używany z prowadnicami planu podczas rozwiązywania problemów z niskiej wydajności kwerendy rozmieszczonej aplikacji.Plan prowadnice są używane stosowane wskazówki kwerendy do kwerendy, gdy nie można ani nie powinien być bezpośrednio Zmień aplikację.Aby uzyskać więcej informacji na temat prowadnic planu zobacz Optimizing Queries in Deployed Applications by Using Plan Guides. Aby uzyskać bardziej szczegółowe scenariuszy, pokazujące, jak wskazówki dotyczącej kwerendy USE PLAN mogą być stosowane w planie prowadnic zobacz Plan Forcing Scenario: Create a Plan Guide That Specifies a Query Plan i Plan Forcing Scenario: Create a Plan Guide to Force a Plan Obtained from a Rewritten Query.
Wymuszanie planu można używać w przypadku większości typów kwerend.Należą do kwerendy tabel, indeksy klastrowane i nieklastrowany, widoki indeksowane i tabele podzielonym na partycje i indeksy.USE PLAN można określić przy użyciu danych manipulacji języka (DML) instrukcje INSERT, UPDATE, korespondencji SERYJNEJ lub DELETE.Należy zauważyć, że zmiany schemat bazy danych, takie jak dodanie lub usunięcie indeksu, może unieważnić planu określonej w wskazówka USE PLAN.Przy użyciu PLAN jest określony bezpośrednio w kwerendzie, nieprawidłowy planu, który powoduje, że kwerenda nie powiedzie się.Przy użyciu PLAN jest określona w plan wykonania kwerendy, plan wykonania kwerendy, który jest nieprawidłowy, nie spowoduje kwerendy nie powiedzie się, jednak plan jest kompilowany bez użycia do wskazówkę dotyczącą i nie może być najlepszym wyborem.Kiedy wskazówka USE, PLAN jest używany wewnątrz plan wykonania kwerendy, można użyć sys.fn_validate_plan_guide funkcja, aby zweryfikować prawidłowość plan wykonania kwerendy.Na podstawie wyniki funkcja, można zdecydować upuść plan wykonania kwerendy i retune kwerendy lub zmienić projekt bazy danych.Na przykład może ponownie utworzyć indeks, określone w plan wykonania kwerendy.
Wygenerowany przy użyciu wskazówki dotyczącej kwerendy PLAN użycia planów kwerend są umieszczane w pamięci podręcznej, podobnie jak inne planów kwerend.
Ograniczenia wymuszenie plan
Wymuszanie planu ogranicza kwerendę do planu wykonanie pojedynczego, statyczne.Wymuszanie plan eliminuje możliwość dostosowania do zmieniania rozmiarów danych i dystrybucji, nowe indeksy i inne zmienne optymalizator kwerendy.W związku z tym wymuszanie planu, jeśli błędnie użytych, może być przyczyną problemów z wydajnością.Wymuszanie plan powinien być używany tylko po pełni poznawanie inne opcje dla poprawy wydajności kwerendy, na przykład przy użyciu statystyk świeże, dokładne i zoptymalizowany indeksów.Wymuszanie planu powinno być używane oszczędnie, tylko i wyłącznie przez doświadczonych bazy danych administratorzy i deweloperzy są wykwalifikowani informacje dotyczące problemów z wydajnością i zmienianie środowiska bazy danych i aplikacji.
Używając wskazówki dotyczącej kwerendy USE PLAN wpływać kompilacji kwerendy w rozmieszczonej aplikacji, należy stosować do wskazówkę dotyczącą wewnątrz plan wykonania kwerendy wykonania kwerendy, a nie dla osadzonych bezpośrednio w aplikacji.W ten sposób można rozwiązania następujących problemów:
Można zmienić lub usunąć do wskazówkę dotyczącą bez modyfikacji lub ponownej kompilacji aplikacji.W przypadku ograniczonej USE PLAN hint stosowanego w jednej wersja SQL Server nie może być stosowane w wersja usługa pack lub wersja. Użytkownik może więc zmienić lub usunąć wskazówkę dotyczącą USE PLAN po wdrożeniu aplikacji.
Można uniknąć za pomocą dużych wskazówkę dotyczącą bezpośrednio w kwerendzie.Kwerendy dzięki temu łatwiejsze do czytania.
Important Note: Podczas tworzenia prowadnicy plan wykonania kwerendy używający USE PLAN, należy sprawdzić podczas testowania czy kwerendy plan, którego chcesz wymusić jest zazwyczaj złożony z żądaniem kursor.Plany kwerend dla kwerend opartych na kursor różnią się od tych kwerend noncursor.W związku z tym do utworzenia plan wykonania kwerendy Określanie wskazówkę USE PLAN dotyczący kwerendy złożony z żądaniem kursor, plan wykonania kwerendy należy określić plan kursor.Aby uzyskać więcej informacji zobaczUsing the USE PLAN Query Hint on Queries with Cursors.
Wymuszanie planu nie jest obsługiwana przez następujące typy kwerend:
Kwerendy zawierające kursory dynamicznych, opartych na zestaw kluczy i tylko przesyłanie dalej.Kursory statyczne i fast-forward tylko są obsługiwane.Aby uzyskać więcej informacji zobaczUsing the USE PLAN Query Hint on Queries with Cursors.
Kwerendami rozproszonymi.
Kwerendy, pełnego tekstu.