Condividi tramite


Procedura: Creazione di una guida di piano (SQL Server Management Studio)

In questo argomento viene illustrata la creazione di una guida di piano tramite SQL Server Management Studio. Le guide di piano influiscono sull'ottimizzazione delle query mediante l'aggiunta di hint o di un piano di query fisso. Nel piano di guida si specifica l'istruzione Transact-SQL da ottimizzare e la clausola OPTION che contiene gli hint che si desidera utilizzare per l'ottimizzazione della query o un piano di query specifico che si desidera utilizzare per ottimizzare la query. Quando viene eseguita la query, Query Optimizer fa corrispondere l'istruzione Transact-SQL alla guida di piano e in fase di esecuzione associa la clausola OPTION alla query oppure utilizza il piano di query specificato.

Nel seguente esempio viene creata una guida di piano per l'istruzione Transact-SQL e viene applicato l'hint per la query FORCESEEK all'istruzione. Tale hint impone all'ottimizzatore di utilizzare un’operazione Index Seek per accedere ai dati presenti nella tabella specificata.

Per creare un esempio di guida di piano

  1. In Esplora oggetti connettersi a un'istanza di Motore di database e quindi espandere tale istanza.

  2. Espandere Database, il database AdventureWorks2008R2 e quindi Programmabilità.

  3. Fare clic con il pulsante destro del mouse su Guide di piano, quindi fare clic su Nuova guida di piano.

  4. In Nome, immettere ForceseekPlan come nome della guida di piano.

  5. In Istruzione, immettere la seguente istruzione Transact-SQL. Di seguito viene riportata l'istruzione sulla quale deve essere applicata la guida di piano.

    SELECT p.LastName, p.FirstName, HumanResources.Employee.JobTitle
    FROM HumanResources.Employee
    JOIN Person.Person AS p ON HumanResources.Employee.BusinessEntityID = p.BusinessEntityID
    WHERE HumanResources.Employee.OrganizationLevel = 3 ORDER BY p.LastName, p.FirstName
    
  6. In Tipo di ambito, selezionare SQL come tipo di entità nel quale l'istruzione Transact-SQL viene visualizzata.

  7. In Hint, immettere la seguente clausola OPTION.

    OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))
    
  8. Per creare la guida di piano, fare clic su OK.

Per verificare che la guida di piano sia associata a una query

  1. Avviare una traccia SQL Server Profiler, assicurandosi che i tipi di evento Plan Guide Successful e Plan Guide Unsuccessful siano selezionati (sotto il nodo Prestazioni).

  2. Eseguire la query fornita nel passaggio 5 della procedura precedente.

  3. Sospendere la traccia di SQL Server Profiler.

  4. Trovare l'evento Plan Guide Successful relativo alla query in esame.

  5. Se la guida di piano non può essere associata query, assicurarsi che la query venga fornita nello stesso formato, carattere per carattere, specificato nell'istruzione della guida di piano, incluse le tabulazioni, gli spazi, gli avanzamenti di riga o i ritorni a capo iniziali.