Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Przewodniki planowania wpływają na optymalizację zapytań, dołączając do nich wskazówki dotyczące zapytań lub stały plan zapytania. W przewodniku po planie określasz instrukcję, którą chcesz zoptymalizować, albo klauzulę OPTION zawierającą wskazówki dotyczące zapytań, których chcesz użyć. lub określony plan zapytania, którego chcesz użyć do optymalizacji zapytania. Po wykonaniu zapytania optymalizator dopasowuje instrukcję Transact-SQL do przewodnika planu i dodaje klauzulę OPTION do zapytania podczas jego wykonywania lub używa określonego planu zapytań.
Przewodnik planu stosuje do zapytania stały plan zapytania i/lub wskazówki dotyczące zapytań.
Ograniczenia i ograniczenia
Argumenty do sp_create_plan_guide muszą być podane w podanej kolejności. Po podaniu wartości parametrów sp_create_plan_guide wszystkie nazwy parametrów muszą być jawnie określone lub w ogóle żadne. Jeśli na przykład @name = jest określona, należy również określić @stmt = , @type = itd. Podobnie, jeśli @name = zostanie pominięta i podano tylko wartość parametru, pozostałe nazwy parametrów również muszą zostać pominięte i tylko podane ich wartości. Nazwy argumentów są przeznaczone tylko do celów opisowych, aby ułatwić zrozumienie składni. Program SQL Server nie sprawdza, czy określona nazwa parametru jest zgodna z nazwą parametru w miejscu, w którym jest używana nazwa.
Można utworzyć więcej niż jeden przewodnik dla obiektu lub planu SQL w ramach tego samego zapytania, wsadu lub modułu. Jednak w danym momencie można włączyć tylko jeden przewodnik po planie.
Nie można utworzyć przewodników planu typu OBJECT dla @module_or_batch wartości odwołującej się do procedury składowanej, funkcji lub wyzwalacza DML, który określa klauzulę WITH ENCRYPTION lub jest tymczasowy.
Próba usunięcia lub zmodyfikowania funkcji, procedury składowanej lub wyzwalacza DML, do których odnosi się przewodnik planów, niezależnie od tego, czy jest włączony, czy wyłączony, powoduje błąd. Próba usunięcia tabeli, na której zdefiniowano wyzwalacz, do którego odnosi się przewodnik planu, powoduje błąd.
Permissions
Aby utworzyć przewodnik planu typu OBJECT, musisz mieć uprawnienie ALTER do obiektu referencyjnego. Aby utworzyć przewodnik planu typu SQL lub TEMPLATE, musisz mieć uprawnienie ALTER w bieżącej bazie danych.
Tworzenie przewodnika po planie przy użyciu programu SSMS
Kliknij znak plus, aby rozwinąć bazę danych, w której chcesz utworzyć przewodnik planowania, a następnie kliknij znak plus, aby rozwinąć folder Programmability.
Kliknij prawym przyciskiem myszy folder Przewodniki planu i wybierz pozycję Nowy przewodnik planu....

W oknie dialogowym Nowy przewodnik po planie w polu Nazwa wprowadź nazwę przewodnika planu.
W polu Instrukcja wprowadź instrukcję Transact-SQL, do której zostanie zastosowany przewodnik planowania.
Na liście Typ zakresu wybierz typ jednostki, w której jest wyświetlana instrukcja Transact-SQL. Określa kontekst dopasowania instrukcji Transact-SQL do przewodnika planu. Możliwe wartości to OBJECT, SQLi TEMPLATE.
W polu Zakres wsadowy wprowadź tekst wsadowy, w którym pojawia się instrukcja Transact-SQL. Tekst wsadowy nie może zawierać instrukcji dotyczącej
USEbazy danych . Pole Zakres wsadowy jest dostępne tylko wtedy, gdy SQL jest wybrany jako typ zakresu. Jeśli nic nie zostanie wprowadzone w polu wsadowym zakresu, gdy sql jest typem zakresu, wartość tekstu wsadowego jest ustawiona na taką samą wartość, jak w polu Instrukcja .Na liście Nazwa schematu zakresu wprowadź nazwę schematu, w którym znajduje się obiekt. Pole Nazwa schematu zakresu jest dostępne tylko wtedy, gdy obiekt jest wybrany jako typ zakresu.
W polu Nazwa obiektu zakresu wprowadź nazwę Transact-SQL procedury składowanej, funkcji skalarnej zdefiniowanej przez użytkownika, funkcji wielostanowej wartości tabeli lub wyzwalacza DML, w którym zostanie wyświetlona instrukcja Transact-SQL. Pole Nazwa obiektu zakresu jest dostępne tylko wtedy, gdy obiekt jest wybrany jako typ zakresu.
W polu Parametry wprowadź nazwę parametru i typ danych wszystkich parametrów osadzonych w instrukcji Transact-SQL.
Parametry mają zastosowanie tylko wtedy, gdy jeden z następujących parametrów ma wartość true:
Typ zakresu to SQL lub TEMPLATE. Jeśli szablon, parametry nie mogą mieć wartości NULL.
Instrukcja Transact-SQL jest przesyłana przy użyciu sp_executesql i określono wartość parametru lub program SQL Server wewnętrznie przesyła instrukcję po sparametryzowaniu.
W polu Wskazówki wprowadź wskazówki dotyczące zapytania lub plan zapytania, który ma zostać zastosowany do instrukcji Transact-SQL. Aby określić co najmniej jedną wskazówkę zapytania, wprowadź prawidłową klauzulę OPTION.
Kliknij przycisk OK.
Tworzenie przewodnika po planie przy użyciu języka T-SQL
W Eksploratorze Obiektów nawiąż połączenie z instancją silnika bazy danych.
Na pasku Standardowego kliknij pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie kliknij pozycję Wykonaj.
-- creates a plan guide named Guide1 based on a SQL statement EXEC sp_create_plan_guide @name = N'Guide1', @stmt = N'SELECT TOP 1 * FROM Sales.SalesOrderHeader ORDER BY OrderDate DESC', @type = N'SQL', @module_or_batch = NULL, @params = NULL, @hints = N'OPTION (MAXDOP 1)';
Aby uzyskać więcej informacji, zobacz sp_create_plan_guide (Transact-SQL).