Associazione degli hint per le query a una guida di pianoAttach Query Hints to a Plan Guide

In una guida di piano è possibile utilizzare qualsiasi combinazione di hint per la query validi.Any combination of valid query hints can be used in a plan guide. Quando una guida di piano corrisponde a una query, la clausola OPTION specificata nella clausola dell'hint di una guida di piano viene aggiunta alla query prima che questa venga compilata e ottimizzata.When a plan guide matches a query, the OPTION clause specified in the hints clause of a plan guide is added to the query before it compiles and optimizes. Se una query che corrisponde a una guida di piano contiene già una clausola OPTION, gli hint per la query specificati nella guida di piano sostituiscono quelli della query.If a query that is matched to a plan guide already has an OPTION clause, the query hints specified in the plan guide replace those in the query. Perché una guida di piano possa corrispondere a una query che già contiene una clausola OPTION è tuttavia necessario includere la clausola OPTION della query quando si specifica il testo della query da far corrispondere nell'istruzione sp_create_plan_guide.However, for a plan guide to match a query that already has an OPTION clause, you must include the OPTION clause of the query when you specify the text of the query to match in the sp_create_plan_guide statement. Se si desidera che gli hint specificati nella guida di piano vengano aggiunti agli hint già esistenti nella query, invece di sostituirli è necessario specificare sia gli hint originali che gli hint aggiuntivi nella clausola OPTION della guida di piano.If you want the hints specified in the plan guide to be added to the hints that already exist on the query, instead of replacing them, you must specify both the original hints and the additional hints in the OPTION clause of the plan guide.

Attenzione

L'utilizzo non corretto degli hint per la query da parte delle guide di piano può provocare problemi di compilazione, esecuzione o prestazioni.Plan guides that misuse query hints can cause compilation, execution, or performance problems. È consigliabile che le guide di piano vengano utilizzate solo da sviluppatori e amministratori esperti di database.Plan guides should be used only by experienced developers and database administrators.

Hint per le query comuni utilizzate nelle guide di pianoCommon Query Hints Used in Plan Guides

Le query che possono trarre vantaggio dall'utilizzo di guide di piano sono in genere basate su parametri ed è possibile che le prestazioni siano insufficienti a causa dell'utilizzo di piani di query memorizzati nella cache nei quali i valori dei parametri non rappresentano il caso peggiore o lo scenario più rappresentativo.Queries that can benefit from plan guides are generally parameter-based, and may be performing poorly because they use cached query plans whose parameter values do not represent a worst-case or most representative scenario. Per la risoluzione di questo problema è possibile utilizzare gli hint per le query OPTIMIZE FOR e RECOMPILE.The OPTIMIZE FOR and RECOMPILE query hints can be used to address this problem. OPTIMIZE FOR indica a SQL ServerSQL Server di utilizzare un valore particolare per un parametro quando la query viene ottimizzata.OPTIMIZE FOR instructs SQL ServerSQL Server to use a particular value for a parameter when the query is optimized. RECOMPILE indica al server di eliminare un piano di query dopo l'esecuzione, forzando Query Optimizer alla compilazione di un nuovo piano di query alla successiva esecuzione della stessa query.RECOMPILE instructs the server to discard a query plan after execution, forcing the query optimizer to recompile a new query plan the next time that the same query is executed. Per un esempio, vedere Guide di piano.For an example, see Plan Guides.

Inoltre, è possibile specificare gli hint di tabella INDEX, FORCESCAN e FORCESEEK come hint per le query.In addition, you can specify the table hints INDEX, FORCESCAN, and FORCESEEK as query hints. Se specificati come hint per le query, tali hint si comportano come un hint di vista o di una tabella inline.When specified as query hints, these hints behave like an inline table or view hint. L'hint INDEX impone a Query Optimizer di utilizzare soltanto gli indici specificati per accedere ai dati nella tabella o nella vista.The INDEX hint forces the query optimizer to use only the specified indexes to access the data in the referenced table or view. L’hint FORCESEEK impone a Optimizer di utilizzare soltanto un’operazione Index Seek per accedere ai dati nella tabella o nella vista a cui si fa riferimento.The FORCESEEK hint forces the optimizer to use only an index seek operation to access the data in the referenced table or view. Tali hint forniscono funzionalità della guida di piano aggiuntive e consentono di avere maggiore influenza sull'ottimizzazione di query che utilizzano la guida di piano.These hints provide additional plan guide functionality and allow you to have more influence over the optimization of queries that use the plan guide.