Migrating Query Plans
W większości przypadków uaktualnienie bazy danych SQL Server 2008 powstanie kwerendy lepszą wydajność. Jednak jeśli kluczowych kwerendy, które dokładnie dostroić wydajność, można zachować planów kwerendy te kwerendy przed uaktualnieniem przez utworzenie prowadnicy plan dla każdej kwerendy.Jeśli po uaktualnieniu, optymalizator kwerendy wybiera mniej wydajne plan dla jednego lub więcej kwerend, można włączyć prowadnic plan i wymusić optymalizator kwerendy do używania pre-upgrade planów.
Aby utworzyć plan prowadnic przed uaktualnieniem, wykonaj następujące kroki:
Rejestrowanie przy użyciu bieżącego planu dla każdej kwerendy krytycznym znaczeniu sp_create_plan_guide przechowywane procedury i określając planu kwerendy w wskazówki dotyczącej kwerendy USE PLAN.
Sprawdź, czy plan wykonania kwerendy jest stosowany do kwerendy.
Uaktualnianie bazy danych SQL Server 2008.
Plany są utrwalane w bazie danych uaktualniony w prowadnice plan i służą jako powrót w odniesieniu do planu strat zauważyć po uaktualnieniu.
Firma Microsoft zaleca, aby nie włączać prowadnic planu po aktualizacji, ponieważ może pominąć możliwości lepiej planów w nowej wersji lub odsetek rekompiluje ze względu na zaktualizowanych statystyk.
Jeśli wybrano mniej wydajne planów po uaktualnieniu, uaktywnić wszystkie lub podzbiór planu prowadzi do zastąpienia nowe plany.
Przykład
W poniższym przykładzie pokazano, jak zarejestrować pre-upgrade plan dla kwerendy dzięki utworzeniu plan wykonania kwerendy.
Krok 1: Zbieranie plan
Zarejestrowane w plan wykonania kwerendy plan wykonania kwerendy kwerendy musi być w formacie XML.Planów kwerend w formacie XML może być produkowany przy użyciu następujących sposobów:
Wykonywanie kwerendy kolumna query_plan sys.dm_exec_query_plan funkcja dynamicznego zarządzania.
The SQL Server ProfilerShowplan XML, Showplan XML Statistics Profile, and Showplan XML For Query Compile event classes.
Aby uzyskać więcej informacji na temat produkcji i analizowanie planów kwerend Zobacz Analyzing a Query.
W poniższym przykładzie zbiera plan kwerend dla instrukcja SELECT City, StateProvinceID, PostalCode FROM Person.Address ORDER BY PostalCode DESC; za pomocą kwerend wysyłanych do dynamicznego zarządzania widokami.
USE AdventureWorks;
GO
SELECT query_plan
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY sys.dm_exec_text_query_plan(qs.plan_handle, DEFAULT, DEFAULT) AS qp
WHERE st.text LIKE N'SELECT City, StateProvinceID, PostalCode FROM Person.Address ORDER BY PostalCode DESC;%';
GO
Krok 2: Utwórz prowadnicę plan wymusić plan
Korzystając z plan wykonania kwerendy plan wykonania kwerendy kwerendy formacie XML (uzyskany przez jedną z metod opisanych wcześniej), skopiuj i Wklej plan wykonania kwerendy kwerendy jako ciąg literału wewnątrz określonych w klauzula OPTION sp_create_plan_guide wskazówki dotyczącej kwerendy USE PLAN.
W ramach plan wykonania kwerendy XML escape znaki cudzysłowu ('), które są wyświetlane w plan z drugiego znaku cudzysłowu przed utworzeniem plan wykonania kwerendy.Na przykład planu, który zawiera WHERE A.varchar = 'This is a string' muszą mieć zmienione znaczenie za przez zmodyfikowanie kodu do WHERE A.varchar = ''This is a string''.
Poniższy przykład tworzy plan wykonania kwerendy do plan wykonania kwerendy kwerend zebrane w kroku 1 i wstawia plan wykonania XML kwerendy w @hints parametr. Zwięzłość tylko częściowo plan wykonania wyników znajduje się w tym przykładzie.
EXECUTE sp_create_plan_guide
@name = N'Guide1',
@stmt = N'SELECT City, StateProvinceID, PostalCode FROM Person.Address ORDER BY PostalCode DESC;',
@type = N'SQL',
@module_or_batch = NULL,
@params = NULL,
@hints = N'OPTION(USE PLAN N''<ShowPlanXML xmlns=''''https://schemas.microsoft.com/sqlserver/2004/07/showplan''''
Version=''''0.5'''' Build=''''9.00.1116''''>
<BatchSequence><Batch><Statements><StmtSimple>
…
</StmtSimple></Statements></Batch>
</BatchSequence></ShowPlanXML>'')';
GO
Krok 3: Sprawdź, czy plan wykonania kwerendy jest stosowana do kwerend
Uruchom ponownie kwerendę i sprawdź planu kwerend, który jest wytwarzany.Należy skontaktować się z planem odpowiada jednej określonej plan wykonania kwerendy.
See Also