Sdílet prostřednictvím


Průvodce vytvořením nového plánu

platí pro:SQL ServerAzure SQL Databaseazure 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

  1. 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.

  2. Klikněte pravým tlačítkem na složku Průvodci plánu a vyberte Nový průvodce plánem.... select_plan_guide

  3. V dialogovém okně Průvodce novým plánem, v poli Název, zadejte název průvodce plánem.

  4. Do pole Výrok zadejte výrok Transact-SQL, na který se má vztahovat průvodce plánem.

  5. 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.

  6. 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 USEdatabá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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. Klepněte na tlačítko OK.

plán_průvodce

Vytvoření průvodce plánem pomocí T-SQL

  1. V Průzkumníku objektůpřipojte se k instanci Databázového Stroje.

  2. Na panelu Standard klikněte na Nový dotaz.

  3. 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).