Projektowanie i wdrażanie planów

Aby zoptymalizować wydajność kwerend nie może lub nie chcesz zmienić tekst kwerendy bezpośrednio można używać przewodników planu.Optymalizacji wpływ prowadnice planu kwerend, dołączając do nich wskazówki kwerendy lub planu kwerend stałych.Plan guides mogą być tworzone do kwerend, które są wykonywane w następujących okolicznościach:

  • przewodnik planu obiekt pasuje do kwerendy, na których wykonywanie w kontekście Transact-SQL przechowywane procedury, zdefiniowanej przez użytkownika funkcji skalarnych, zdefiniowane przez użytkownika multi-statement tabela-ważnych funkcji i wyzwalaczy LŚD.

  • przewodnik planu SQL dopasowuje kwerend, wykonać w kontekście autonomicznego Transact-SQL instrukcji i partii, które są nie jest częścią obiektu bazy danych.Prowadnice planu opartego na serwerze SQL można również dopasować kwerend, które parameterize do określonego formularza.

  • przewodnik planu szablon odpowiada autonomicznych kwerend, które parameterize do określonego formularza.Prowadnice planu są używane do zastąpienia bieżącej bazy danych PARAMETRYZACJA zestawu opcji dla klasy kwerend bazy danych.

Aby uzyskać więcej informacji, zobacz Opis planu prowadnic.

Całkowita liczba można utworzyć plan guides jest ograniczony tylko przez dostępne zasoby systemowe.Niemniej jednak plan guides powinien być ograniczony do kwerendy krytyczne, które są przeznaczone do stabilnych lub poprawę wydajności.Plan guides powinna nie używane do wpływ większość obciążenia kwerendy rozmieszczonej aplikacji.

Firma Microsoft zaleca ponownej i badania przewodnik planu definicje po uaktualnieniu do nowej wersji aplikacji SQL Server.Może zmienić wymagania dotyczące dostrajania wydajności i zachowanie odpowiedniego przewodnik planu przewodnik.Chociaż przewodnik nieprawidłowy plan nie spowoduje kwerenda nie powiedzie się, plan jest kompilowany bez użycia przewodnik planu.Po uaktualnieniu bazy danych zaleca się wykonywać następujące zadania, aby sprawdzić istniejący plan guides przy użyciu sys.fn_validate_plan_guide funkcja.Alternatywnie można monitorować dla nieprawidłowych plan guides za pomocą Plan przewodnik niepomyślnych zdarzenie w SQL Server Profiler.

Ostrzeżenie

Plan prowadnice mogą być używane tylko na SQL Server , deweloper, oceny, wersje; jednak plan guides są widoczne w dowolnej wersji.Można również dołączyć bazę danych, zawierającą plan guides do dowolnej wersji.Plan guides pozostają niezmienione, podczas przywracanie lub dołączania bazy danych do uaktualnionych wersja SQL Server.

Dołączanie wskazówki kwerendy do planu

Dowolna kombinacja wskazówki prawidłowej kwerendy mogą być używane w podręczniku przewodnik planu.Pasuje do przewodnik planu kwerendy, klauzula opcji określonych w klauzuli wskazówki przewodnik planu jest dodana do kwerendy, przed kompiluje i optymalizuje.Jeśli kwerenda, dostosowanego do przewodnik planu już ma OPCJĘ klauzula, kwerendy wskazówki określone w podręczniku plan zastępują w kwerendzie.Jednak Podręcznik przewodnik planu do kwerendy zawierającej klauzulę opcji, należy dołączyć OPCJĘ klauzula kwerendy po określeniu tekst kwerendy zgodny w sp_create_plan_guide instrukcja.Żądane podpowiedzi, określone w podręczniku plan ma zostać dodany do wskazówek, które już istnieją na tej kwerendzie zamiast zastępować je w klauzula opcja przewodnik planu należy określić oryginalnego wskazówki oraz dodatkowe wskazówki.

PrzestrogaPrzestroga

Plan guides, które niewłaściwym użyciem wskazówki kwerendy może powodować problemy z kompilacji, wykonanie lub wydajności.Plan guides powinna być używana tylko przez doświadczonych programistów i administratorów baz danych.

Typowe wskazówki kwerendy używane w Plan Guides

Kwerendy, które mogą korzystać z przewodników planu są ogólnie oparte na parametr i może być źle wykonywania ponieważ używają one planów kwerend buforowaną wartości parametrów, których nie reprezentują najgorszej -przypadek lub najbardziej reprezentatywny scenariusz.Aby rozwiązać ten problem można ZOPTYMALIZOWAĆ dla i wskazówki kwerendy ponownej kompilacji.OPTYMALIZUJ dla nakazuje SQL Server do przy określonej wartości dla parametru kwerendy jest zoptymalizowana.RECOMPILE nakazuje serwerowi odrzucić plan kwerend po wykonaniu wymuszanie optymalizator kwerendy ponowną kompilację nowego planu kwerend dalej czas wykonywany tej samej kwerendy.Na przykład, zobacz Opis planu prowadnic.

Ponadto można określić wskazówki tabela indeks i FORCESEEK jako wskazówki kwerendy.Gdy określona jako wskazówki kwerendy, te wskazówki zachowują się jak wskazówką wierszu tabela lub widoku.Wskazówka zmusza optymalizator kwerendy do używania określonego indeksy dostępu do danych w tabela lub widoku.Wskazówka FORCESEEK zmusza optymalizator używać tylko do indeksu wyszukiwania operacji dostępu do danych w tabela lub widoku.Te wskazówki przewodnik planu dodatkowego przewodnika funkcjonalność i umożliwiają wpływu więcej optymalizacji kwerend korzystających z przewodnik planu.Na przykład, zobacz Korzystanie z INDEKSU i wskazówek FORCESEEK kwerendy w Plan Guides.

Dołączanie planu kwerend do planu

Plan guides dotyczące planu kwerend stałe są przydatne, gdy wiadomo istniejących planów wykonywania wykonujący lepiej niż wybranego przez optymalizator dla określonej kwerendy.Należy zauważyć, że stosowanie środka planu kwerendy oznacza, że optymalizator kwerendy można już dostosowanie plan dla kwerendy do zmian w dziedzinie statystyki i indeksy.Kiedy należy rozważyć plan guides użyć planów kwerend stałych, upewnij się, że porównanie korzyści stosowania środka plan z niezdolność do dostosowania planu automatycznie jako dystrybucji danych i zmień dostępnych indeksów.

Plan określonej kwerendy można dołączyć do przewodnik planu, określając Showplan XML przewodnik planu xml_showplan parametr w sp_create_plan_guide instrukcja lub określając uchwyt plan buforowanego przewodnik planu w sp_create_plan_guide_from_handle instrukcja.Plan kwerend stałych obie te metody dotyczą ukierunkowanych kwerendy.

Plan przewodnik spełniających wymagania

Plan guides zakresu są do bazy danych, w którym zostały utworzone.Dlatego tylko plan guides, które istnieją w bazie danych, która jest aktualny, gdy wykonuje kwerendę można dopasować do kwerendy.Na przykład jeśli AdventureWorks2008R2 jest bieżąca baza danych i wykonuje następującą kwerendę:

SELECT FirstName, LastName FROM Person.Person;

Przeprowadza plan tylko w AdventureWorks2008R2 bazy danych są uprawnione do dopasowania do kwerendy.

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

USE DB1;

GO

SELECT FirstName, LastName FROM Person.Person;

Przeprowadza plan tylko w DB1 są uprawnione do dopasowania do kwerendy, ponieważ kwerendy w kontekście DB1.

Na podstawie SQL lub szablon plan prowadnic, SQL Server odpowiada wartości @ module_or_batch i @ params argumenty kwerendy przez porównanie dwóch wartości znak po znaku.Oznacza to, że musisz podać tekst dokładnie jako SQL Server odbiera je w rzeczywistej partia.

Gdy @ Typ = "SQL' i @ module_or_batch jest zestaw zerową wartość @ module_or_batch jest zestaw do wartości @ stmt.Oznacza to, że wartość dla statement_text muszą być podane w dokładnie ten sam format znaków dla znaków, które są przedkładane SQL Server.Ułatwia to dopasowanie jest wykonywane bez konwersji wewnętrznej.

Ogólnie rzecz biorąc, należy przetestować przy użyciu prowadnic planu SQL Server Profiler zweryfikować, że kwerenda jest filtrowanego przewodnik planu.Badań SQL - lub opartych na SZABLONIE plan prowadnice przez uruchomione instancje z SQL Server Management Studio może dawać nieoczekiwane wyniki.Aby uzyskać więcej informacji, zobacz Za pomocą SQL Server Profiler, aby utworzyć i przetestować Plan prowadnic.

Ostrzeżenie

partia Zawiera oświadczenie, w którym chcesz utworzyć przewodnik planu nie może zawierać wykorzystanie database instrukcja.

Plan przewodnik wpływ na Plan pamięci podręcznej

Tworzenie przewodnik planu na module usuwa plan kwerend dla tego modułu z pamięci podręcznej przewodnik planu.Tworzenie przewodnik planu typu obiektu lub SQL na partia usuwa plan kwerend dla partia, która ma taką samą wartość mieszania.Tworzenie przewodnik planu typu szablonu usuwa wszystkie instancje jednej instrukcja z pamięci podręcznej przewodnik planu w tej bazie danych.

Instrukcji planu przewodnik

Aby utworzyćprzewodnik planu

Aby wyłączyć, włączyć lub usuwanie przewodników planu

Aby uzyskać informacje o plan guides w bieżącej bazie danych.

Aby sprawdzić poprawność przewodnik planu