Udostępnij za pośrednictwem


Designing and Implementing Plan Guides

Za pomocą prowadnic planu w celu zoptymalizowania wydajności kwerendy nie może lub nie chcesz zmieniać tekst kwerendy bezpośrednio.Plan prowadnic wpływ optymalizacji kwerendy przez dołączenie wskazówki kwerendy lub plan kwerend środka do nich.Plan prowadnic mogą być utworzone do kwerendy, które są wykonywane w następujących sytuacjach:

  • plan wykonania kwerendy wykonania kwerendy OBJECT pasuje do kwerendy, które są wykonać w kontekście Transact-SQL procedur przechowywanych, funkcji wartość skalarna zdefiniowanej przez użytkownika, multi-instrukcja funkcji zdefiniowanych przez użytkownika wartości w tabela i DML wyzwalaczy.

  • plan wykonania kwerendy wykonania kwerendy SQL pasuje do kwerendy, które są wykonać w kontekście autonomiczny Transact-SQL instrukcje i instancji, które nie są częścią obiektu bazy danych. Przewodniki programu opartego na serwerze SQL można również dopasować kwerendy, które parameterize do określonego formularza.

  • plan wykonania kwerendy wykonania kwerendy TEMPLATE jest taka sama, jak autonomiczne kwerendy, które parameterize do określonego formularza.Prowadnice plan są używane do zastąpienia bieżącej bazy danych PARAMETRYZACJI opcji zestaw dla klasy z kwerendy bazy danych.

Aby uzyskać więcej informacji zobaczUnderstanding Plan Guides.

Całkowita liczba prowadnic planu można utworzyć jest ograniczona tylko przez dostępne zasoby systemowe.Niemniej jednak prowadnic plan powinien być ograniczony do kluczowych kwerendy, które są przeznaczone dla stabilnych lub poprawę wydajności.Nie należy używać prowadnic planu wpływać największego obciążenia kwerendy rozmieszczonej aplikacji.

Firma Microsoft zaleca re-evaluating i testowanie plan wykonania kwerendy definicje Przewodnik po uaktualnieniu aplikacji do nowej wersji programu SQL Server. Wymagania dotyczące dostosowywania działania i zachowanie odpowiedniego plan wykonania kwerendy przewodnik mogą ulec zmianie.Mimo że przewodnik nieprawidłowy plan wykonania kwerendy nie spowoduje, że kwerenda nie powiedzie się, plan jest kompilowany bez korzystania z plan wykonania kwerendy.Po uaktualnieniu bazy danych SQL Server 2008, zaleca się wykonanie następujących zadań do sprawdzania poprawności istniejących prowadnic planu przy użyciu sys.fn_validate_plan_guide funkcja.Alternatywnie, można monitorować dla linii nieprawidłowy plan wykonania kwerendy przy użyciu Zaplanowanie przewodnika nie powiodła się zdarzenie in SQL Server Profiler.

Uwaga

Plan prowadnic mogą być używane tylko w SQL Server Standardowe, Developer, oceny i Enterprise wersji; jednak plan prowadnice są widoczne w żadnej wersji. Można również dołączyć bazę danych zawierającą przewodniki planu do żadnej wersji.Linie pomocnicze planu pozostają bez zmian podczas przywracanie lub dołączania bazy danych do uaktualnionej wersja SQL Server 2008.

Dołączanie wskazówki kwerendy do plan wykonania kwerendy

Dowolna kombinacja prawidłowej kwerendy wskazówki mogą być używane w plan wykonania kwerendy.Jeśli plan wykonania kwerendy spełnia kryteria kwerendy, klauzula OPTION, określone w klauzuli wskazówki plan wykonania kwerendy zostanie dodany do kwerendy przed jej kompiluje i optymalizuje.Jeżeli kwerendę, która zostanie dopasowany do plan wykonania kwerendy już klauzulę OPTION, wskazówki kwerendy określonej w plan wykonania kwerendy zastąpią w kwerendzie.Podręcznik plan wykonania kwerendy do kwerendy, która już zawiera klauzulę OPTION, użytkownik musi jednak zawierać klauzula OPTION kwerendy po określeniu tekst kwerendy, aby dopasować w instrukcja sp_create_plan_guide.Jeśli chcesz, aby wskazówki, określone w podręczniku plan ma zostać dodana do wskazówek, które już istnieją na kwerendy, zamiast zastępować, należy określić zarówno oryginalnego wskazówki, jak i dodatkowe wskazówki dotyczące w klauzula OPTION plan wykonania kwerendy.

Ostrzeżenie

Prowadnice planu niewłaściwym użyciem wskazówki kwerendy może być przyczyną problemów kompilacji, wykonywania i wydajności.Linie pomocnicze planu należy używać tylko przez doświadczonych programistów i administratorów bazy danych.

Typowe wskazówki kwerendy używane w prowadnice plan

Kwerendy, które mogą korzystać z prowadnic plan są zazwyczaj oparte na parametr i mogą być wykonywanie słabo, ponieważ używają one planów kwerend buforowane, których wartości parametru nie reprezentują najgorszych lub najbardziej reprezentatywny scenariusz.Aby rozwiązać ten problem można ZOPTYMALIZOWAĆ za i wskazówki kwerendy RECOMPILE.OPTYMALIZUJ dla powoduje, że SQL Server do użytku na konkretną wartość dla parametru, gdy kwerenda jest zoptymalizowany. RECOMPILE nakazuje serwerowi odrzucić planu kwerendy po wykonaniu wymuszanie optymalizator kwerendy ponowną kompilację nowego planu kwerend przy następnym uruchomieniu tej samej kwerendy jest wykonywane.Aby zapoznać się z przykładem zobacz Understanding Plan Guides.

Ponadto można określić tabela wskazówki INDEX i FORCESEEK jako wskazówki kwerendy.Po określeniu jako kwerendy wskazówki te wskazówki zachowują się jak wskazówką wierszu tabela lub widoku.Wskazówki INDEX zmusza optymalizator kwerendy do używania tylko określonych indeksów do uzyskiwania dostępu do danych w widoku lub tabela, do którego istnieje odwołanie.Wskazówka FORCESEEK zmusza optymalizator używać tylko do indeksu wyszukiwania operacji dostępu do danych w widoku lub tabela, do którego istnieje odwołanie.Te wskazówki plan wykonania kwerendy dodatkowej prowadnicy funkcjonalność i umożliwiają więcej wpływu na optymalizację kwerendy używające plan wykonania kwerendy.Aby zapoznać się z przykładem zobacz Using the INDEX and FORCESEEK Query Hints in Plan Guides.

Dołączanie plan kwerend do plan wykonania kwerendy

Prowadnice planu dotyczące planu kwerendy stałe są przydatne, gdy są właściwie plan wykonania, które wykonuje się lepiej niż ten, wybranego przez optymalizator dla określonej kwerendy.Należy zwrócić uwagę, stosowanie stałych planu kwerendy oznacza że optymalizator kwerendy możliwość dostosowania nie są już plan dla kwerendy, aby zmiany w danych statystycznych i indeksy.Kiedy należy rozważyć prowadnic planu używających planów kwerend stałych, upewnij się, że porównywanie zalet stałych planu z niezdolność do dostosowania planu automatycznie jako dystrybucji danych i zmienianie dostępnych indeksów.

Plan określonej kwerendy można dołączyć do plan wykonania kwerendy, określając plan wykonania XML plan wykonania kwerendy xml_showplan Parametr w sp_create_plan_guide instrukcja, albo przez określenie uchwyt plan wykonania kwerendy buforowanego plan wykonania kwerendy w sp_create_plan_guide_from_handle instrukcja.Planu kwerendy środka obie te metody dotyczą ukierunkowanych kwerendy.

plan wykonania kwerendy Spełniających wymagania

Plan prowadnice są o zakresie w bazie danych, w którym zostały utworzone.Z tego powodu można dopasować tylko prowadnice planu istniejących w bazie danych, który jest bieżący w momencie wykonuje kwerendę do kwerendy.Na przykład jeśli AdventureWorks Bieżąca baza danych jest i wykonuje następującą kwerendę:

SELECT * FROM Person.Contact;

Plan tylko prowadzi w AdventureWorks bazy danych są uprawnione do dopasowania do tej kwerendy.

Jednak jeśli AdventureWorks jest bieżąca baza danych i są uruchamiane następujące instrukcje:

ZA POMOCĄ DB1;

PRZEJDŹ DO

SELECT * FROM Person.Contact;

Planowane jest tylko prowadnic w DB1 są uprawnione do dopasowania do kwerendy, ponieważ kwerenda jest wykonywany w kontekście DB1.

Dla linii planu lub TEMPLATE opartego na serwerze SQL SQL Server Dopasowuje wartości argumentów @ module_or_batch i @ params do kwerendy, porównując dwie wartości znak po znaku. Oznacza to, że trzeba podać tekst dokładnie tak jak SQL Server odbiera je w rzeczywistej partia.

Kiedy @ typu = 'SQL' i @ module_or_batch jest ustawiona na wartość NULL, wartość @ module_or_batch jest ustawiona na wartość @ stmt.Oznacza to, że wartość statement_text należy podać w dokładnie ten sam format, znak do znaku, jak jest przesyłany do SQL Server. Wewnętrzny konwersja nie jest wykonywana w celu ułatwienia tego dopasowania.

Ogólnie rzecz biorąc należy przetestować przy użyciu prowadnic plan wykonania kwerendy SQL Server Profiler Aby sprawdzić, czy kwerenda jest filtrowanego poradnik plan wykonania kwerendy. Testowania lub TEMPLATE opartego na serwerze SQL planowanie prowadnic, uruchamiając partii z SQL Server Management Studio może dać nieoczekiwane wyniki. Aby uzyskać więcej informacji zobaczUsing SQL Server Profiler to Create and Test Plan Guides.

Uwaga

Wsadowy, który zawiera informację, na którym chcesz utworzyć plan wykonania kwerendy nie może zawierać USE database Instrukcja.

Efekt plan wykonania kwerendy wykonania kwerendy w pamięci podręcznej plan

Tworzenie plan wykonania kwerendy na module usuwa plan kwerend dla tego modułu z pamięci podręcznej plan wykonania kwerendy.Tworzenie plan wykonania kwerendy typu OBJECT lub SQL na zadanie partia usuwa plan kwerend dla partia, który ma taką samą wartość mieszania.Tworzenie prowadnicy plan typu TEMPLATE usuwa wszystkie instancje pojedynczą instrukcją z pamięci podręcznej plan wykonania kwerendy w tej bazie danych.

Deklaracje przewodnik planowania

Do utworzenia plan wykonania kwerendy

Aby wyłączyć, włączyć lub usuwanie prowadnic planu

Aby uzyskać informacje o planie prowadnic w bieżącej bazie danych

Aby sprawdzić poprawność plan wykonania kwerendy