Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Lehetővé teszi egy adott terv kényszerítését egy adott lekérdezéshez a Lekérdezéstárban.
Amikor egy terv egy adott lekérdezésre van kényszerítve, minden alkalommal, amikor az SQL Server találkozik a lekérdezéssel, megpróbálja kényszeríteni a tervet a Lekérdezésoptimalizálóban. Ha a terv kényszerítése sikertelen, a rendszer aktivál egy kiterjesztett eseményt, és a lekérdezésoptimalizálót arra utasítja, hogy a szokásos módon optimalizáljon.
Transact-SQL szintaxis konvenciói
Szintaxis
sp_query_store_force_plan
[ @query_id = ] query_id ,
[ @plan_id = ] plan_id ,
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing ,
[ @replica_group_id = ] 'replica_group_id'
[ ; ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
[ @query_id = ] query_id
A lekérdezés azonosítója. @query_id, alapértelmezés nélkül.
[ @plan_id = ] plan_id
A kényszerítendő lekérdezésterv azonosítója. @plan_idbigint, alapértelmezés nélkül.
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing
Azt jelzi, hogy le kell-e tiltani az optimalizált terv kényszerítését.
@disable_optimized_plan_forcingbit alapértelmezett 0.
[ @replica_group_id = ] 'replica_group_id'
Ha engedélyezve van az olvasható másodpéldányok lekérdezéstára , kényszerítheti a másodlagos replikára vonatkozó terveket. Hajtsa végre sp_query_store_force_plan és sp_query_store_unforce_plan az elsődleges replikán. A @replica_group_id argumentum alapértelmezés szerint arra a helyi replikára vonatkozik, ahol a parancs végrehajtása folyamatban van, de megadhat egy replica_group_id hivatkozva a sys.query_store_plan_forcing_locations rendszerkatalógus nézetére.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Megjegyzések
A funkció által kényszerített végrehajtási terv megegyezik vagy hasonló a kényszerített tervhez. Mivel az eredményként kapott terv nem feltétlenül azonos a sys.sp_query_store_force_planáltal megadott tervvel, a tervek teljesítménye eltérő lehet. Ritkán a teljesítménybeli különbség jelentős és negatív lehet; ebben az esetben a rendszergazdának el kell távolítania a kényszerített tervet.
A másodlagos replikák kényszerített terveinek áttekintése a sys.query_store_plan_forcing_locations.
Engedélyek
ALTER Az adatbázis engedélyére van szükség.
Példák
Az alábbi példa a lekérdezéstárban lévő lekérdezésekkel kapcsolatos információkat adja vissza.
SELECT txt.query_text_id,
txt.query_sql_text,
pl.plan_id,
qry.*
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON pl.query_id = qry.query_id
INNER JOIN sys.query_store_query_text AS txt
ON qry.query_text_id = txt.query_text_id;
Miután azonosította a kényszeríteni kívánt query_id és plan_id, az alábbi példával kényszerítheti a lekérdezést egy terv használatára.
EXECUTE sp_query_store_force_plan
@query_id = 3,
@plan_id = 3;
A sys.query_store_replicas csatlakoztatott sys.query_store_plan_forcing_locations használatával lekérheti a Lekérdezéstárat olvasható másodtárakhoz.
SELECT query_plan
FROM sys.query_store_plan AS qsp
INNER JOIN sys.query_store_plan_forcing_locations AS pfl
ON pfl.query_id = qsp.query_id
INNER JOIN sys.query_store_replicas AS qsr
ON qsr.replica_group_id = qsp.replica_group_id
WHERE qsr.replica_name = 'yourSecondaryReplicaName';
Kapcsolódó tartalom
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sys.query_store_replicas (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- Lekérdezéstár katalógusnézetei (Transact-SQL)
- Teljesítmény monitorozása a Lekérdezéstár
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- ajánlott eljárás a Lekérdezéstár