Průvodce vytvořením nového plánu
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
Průvodce plánu ovlivňují optimalizaci dotazů připojením pokynů dotazů nebo pevného plánu dotazu. V průvodci plánem zadáte příkaz, který chcete optimalizovat, a buď klauzuli OPTION, která obsahuje rady dotazů, které chcete použít. nebo konkrétní plán dotazu, který chcete použít k optimalizaci dotazu. Když se dotaz spustí, optimalizátor dotazů odpovídá příkazu Transact-SQL průvodci plánem a buď připojí klauzuli OPTION k dotazu za běhu nebo použije zadaný plán dotazu.
Průvodce plánem aplikuje na dotaz buď pevný plán dotazu, nebo nápovědu k dotazu.
Omezení a restrikce
Argumenty sp_create_plan_guide musí být zadané v uvedeném pořadí. Při zadávání hodnot pro parametry sp_create_plan_guidemusí být zadány všechny názvy parametrů explicitně nebo žádné vůbec. Pokud je například zadán @name =, musí být zadán také @stmt = , @type =atd. Podobně platí, že pokud @name = vynechána a zadaná je pouze hodnota parametru, musí se vynechat i zbývající názvy parametrů a zadat pouze jejich hodnoty. Názvy argumentů jsou určené pouze pro popisné účely, které vám pomůžou porozumět syntaxi. SQL Server neověřuje, že zadaný název parametru odpovídá názvu parametru v pozici, kde se název používá.
Pro stejný dotaz a dávku nebo modul můžete vytvořit více než jednu příručku plánu OBJECT nebo SQL. V daném okamžiku však lze povolit pouze jednoho průvodce plánem.
Vodítka plánu typu OBJECT nelze vytvořit pro hodnotu @module_or_batch, která odkazuje na uloženou proceduru, funkci nebo trigger DML, který určuje klauzuli WITH ENCRYPTION nebo která je dočasná.
Při pokusu o vyřazení nebo úpravu funkce, uložené procedury nebo triggeru DML, na který odkazuje průvodce plánem, který je povolený nebo zakázaný, dojde k chybě. Při pokusu o vyřazení tabulky s definovanou aktivační událostí, na kterou odkazuje průvodce plánem, dojde také k chybě.
Dovolení
K vytvoření průvodce plánem typu OBJECT potřebujete oprávnění ALTER pro odkazovaný objekt. Pokud chcete vytvořit průvodce plánem typu SQL nebo TEMPLATE, potřebujete oprávnění ALTER k aktuální databázi.
Vytvoření průvodce plánem pomocí aplikace SSMS
Kliknutím na znaménko plus rozbalte databázi, ve které chcete vytvořit průvodce plánem, a potom kliknutím na znaménko plus rozbalte složku Programovatelnost.
Klikněte pravým tlačítkem na složku Průvodci plánu a vyberte Nový průvodce plánem....
V dialogovém okně Průvodce novým plánem, v poli Název, zadejte název průvodce plánem.
Do pole Výrok zadejte výrok Transact-SQL, na který se má vztahovat průvodce plánem.
V seznamu Typ oboru vyberte typ entity, ve které se zobrazí příkaz Transact-SQL. Určuje kontext pro porovnávání příkazu Transact-SQL s průvodcem pro plán. Možné hodnoty jsou OBJECT, SQLa TEMPLATE.
Do pole Rozsah dávky zadejte text dávky, ve kterém se objeví výrok Transact-SQL. Dávkový text nemůže obsahovat příkaz
USE
databáze. Pole Batch rozsahu je k dispozici pouze v případech, kdy je sql vybrán jako typ oboru. Pokud není v poli dávky oboru nic zadáno, když je SQL typem oboru, je hodnota dávkového textu nastavena na stejnou hodnotu jako v poli Příkaz.V seznamu Název schématu oboru zadejte název schématu, ve kterém je objekt obsažen. Pole Název schématu oboru je k dispozici pouze v případě, kdy je jako typ oboru vybrán Objekt.
Do pole Název objektu oboru zadejte název Transact-SQL uložené procedury, definované uživatelem skalární funkce, vícevětové tabulkové funkce nebo DML spouštěče, ve kterém se nachází příkaz Transact-SQL. Pole Název objektu oboru je k dispozici pouze v případech, kdy je Objekt vybrán jako typ oboru.
Do pole Parametry zadejte název parametru a datový typ všech parametrů, které jsou vloženy do příkazu Transact-SQL.
Parametry platí pouze v případech, kdy platí některý z následujících parametrů:
Typ oboru je SQL nebo ŠABLONA. Pokud TEMPLATE, parametry nesmí být NULL.
Příkaz Transact-SQL se odešle pomocí sp_executesql a zadává se hodnota parametru nebo SQL Server interně odešle příkaz po parametrizaci.
Do pole Nápovědy zadejte tipy k dotazu nebo plán dotazu, které mají být použity na příkaz Transact-SQL. Pokud chcete zadat jeden nebo více tipů dotazu, zadejte platnou klauzuli OPTION.
Klepněte na tlačítko OK.
Vytvoření průvodce plánem pomocí T-SQL
V Průzkumníku objektůpřipojte se k instanci Databázového Stroje.
Na panelu Standard klikněte na Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a klikněte na Spustit.
-- 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)';
Další informace naleznete v tématu sp_create_plan_guide (Transact-SQL).