Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
A terv-útmutatók a lekérdezésoptimalizálást úgy befolyásolják, hogy lekérdezési tippeket vagy rögzített lekérdezéstervet csatolnak hozzájuk. A terv útmutatójában meg kell adnia az optimalizálni kívánt utasítást, és vagy egy OPTION záradékot, amely a használni kívánt lekérdezési tippeket tartalmazza. vagy egy adott lekérdezéstervet, amelyet a lekérdezés optimalizálásához szeretne használni. A lekérdezés végrehajtásakor a lekérdezésoptimalizáló megfelel a Transact-SQL utasításnak a terv útmutatójában, és futtatáskor csatolja az OPTION záradékot a lekérdezéshez, vagy a megadott lekérdezési tervet használja.
A terv útmutatója rögzített lekérdezési tervet és/vagy lekérdezési tippeket alkalmaz egy lekérdezésre.
Korlátozások és korlátozások
A sp_create_plan_guide argumentumait a megjelenített sorrendben kell megadni. Ha a sp_create_plan_guideparamétereihez ad meg értékeket, az összes paraméternevet explicit módon kell megadni, vagy egyáltalán nem. Ha például @name = van megadva, akkor @stmt =, @type =stb. Hasonlóképpen, ha @name = ki van hagyva, és csak a paraméterérték van megadva, a többi paraméternevet is ki kell hagyni, és csak az értékeiket kell megadni. Az argumentumnevek csak leíró célokra szolgálnak a szintaxis megértéséhez. Az SQL Server nem ellenőrzi, hogy a megadott paraméternév megegyezik-e a paraméter nevével abban a helyen, ahol a nevet használják.
Ugyanahhoz a lekérdezéshez, köteghez vagy modulhoz több OBJEKTUM- vagy SQL-terv útmutatót is létrehozhat. Egy adott időpontban azonban csak egy terv útmutatója engedélyezhető.
Az OBJEKTUM típusú tervutasítók nem hozhatók létre olyan @module_or_batch értékhez, amely a WITH ENCRYPTION záradékot meghatározó vagy ideiglenes tárolt eljárásra, függvényre vagy DML-eseményindítóra hivatkozik.
Egy tervútmutató által hivatkozott függvény, tárolt eljárás vagy DML-eseményindító elvetése vagy módosítása hibát okoz. Ha olyan táblát próbál elvetni, amelyen egy tervútmutató által hivatkozott eseményindító van definiálva, szintén hibát okoz.
Engedélyek
Objektum típusú terv irányelv létrehozásához ALTER engedélyre van szükség a hivatkozott objektumon. SQL vagy TEMPLATE típusú tervkalauz létrehozásához alter engedélyre van szüksége az aktuális adatbázishoz.
Terv útmutató létrehozása az SSMS használatával
A pluszjelre kattintva bontsa ki azt az adatbázist, amelyben tervútmutatót szeretne létrehozni, majd a pluszjelre kattintva bontsa ki a Programozhatóság mappát.
Kattintson a jobb gombbal a Terv útmutatók mappára, és válassza az Új terv útmutatólehetőséget.

Az Új terv útmutatója párbeszédpanel Név mezőjében adja meg a terv útmutatójának nevét.
Az Nyilatkozat mezőben adja meg azt a Transact-SQL nyilatkozatot, amelyre a terv útmutatója alkalmazandó.
A Hatókör típusa listában válassza ki azt az entitástípust, amelyben a Transact-SQL utasítás megjelenik. Ez határozza meg a Transact-SQL utasításnak a terv útmutatóval való egyeztetésének kontextusát. Lehetséges értékek OBJECT, SQLés TEMPLATE.
A Hatókör csoport mezőbe írja be azt a csoportszöveget, amelyben a Transact-SQL nyilatkozat megjelenik. A kötegszöveg nem tartalmazhat
USEadatbázis- utasítást. A Hatókör köteg mező csak akkor érhető el, ha SQL- van kijelölve hatókörtípusként. Ha a hatókör kötegmezőjében semmit sem ad meg, amikor az SQL a hatókör típusa, akkor a kötegszöveg értéke a Utasítás mezőben megadott értékre van állítva.A Hatókör sémanév listában adja meg annak a sémának a nevét, amelyben az objektum található. A Hatókör sémanév mező csak akkor érhető el, ha Objektum van kijelölve hatókörtípusként.
A Hatókör objektumnév mezőben adja meg annak a Transact-SQL tárolt eljárásnak, felhasználó által definiált skaláris függvénynek, többértékű táblaértékű függvénynek vagy DML-eseményindítónak a nevét, amelyben a Transact-SQL utasítás megjelenik. A Hatókör objektumnév mező csak akkor érhető el, ha Objektum van kijelölve hatókörtípusként.
A Paraméterek mezőbe írja be a Transact-SQL utasításba beágyazott összes paraméter paraméternevét és adattípusát.
A paraméterek csak akkor érvényesek, ha az alábbiak valamelyike igaz:
A hatókör típusa SQL vagy TEMPLATE. Ha SABLON, a paraméterek nem lehetnek NULL értékűek.
A Transact-SQL utasítás elküldése sp_executesql használatával történik, és meg van adva a paraméter értéke, vagy az SQL Server belsőleg küld el egy utasítást a paraméterezés után.
A Tippek mezőben adja meg a Transact-SQL utasításra alkalmazni kívánt lekérdezési tippeket vagy lekérdezéstervet. Egy vagy több lekérdezési tipp megadásához adjon meg egy érvényes OPTION záradékot.
Kattintson OKgombra.
Terv útmutató létrehozása a T-SQL használatával
Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.
A Standard sávon kattintson Új lekérdezéselemre.
Másolja és illessze be a következő példát a lekérdezési ablakba, és kattintson a Végrehajtásgombra.
-- 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)';
További információ: sp_create_plan_guide (Transact-SQL).