Visualizzazione dei piani di esecuzione grafici (SQL Server Management Studio)

SQL Server Management Studio è uno strumento grafico interattivo che consente a un amministratore di database o a uno sviluppatore di scrivere query, eseguire contemporaneamente più query, visualizzare i risultati e analizzare il piano di query. Query Analyzer fornisce inoltre assistenza al fine di migliorare le prestazioni delle query. Le opzioni relative al piano di esecuzione offrono una rappresentazione grafica dei metodi di recupero dei dati scelti da Query Optimizer di SQL Server. Per rappresentare l'esecuzione di istruzioni e query specifiche in SQL Server, nel piano di esecuzione grafico vengono utilizzate icone, invece della rappresentazione tabulare restituita dalle opzioni SET SHOWPLAN_ALL o SET SHOWPLAN_TEXT dell'istruzione SET di Transact-SQL oppure della rappresentazione in formato XML restituita dall'opzione SET SHOWPLAN_XML. La visualizzazione grafica risulta particolarmente utile per la comprensione delle caratteristiche relative alle prestazioni di una query. SQL Server Management Studio evidenzia le statistiche mancanti e formula stime sulla selettività dei predicati, semplificando in tal modo la successiva creazione delle statistiche mancanti.

Nota

I piani di esecuzione non vengono visualizzati per stored procedure crittografate o per trigger.

Utilizzo delle opzioni del piano di esecuzione

Aprire o digitare uno script di Transact-SQL contenente le query da analizzare nell'editor di query di Management Studio. Dopo il caricamento dello script nell'editor di query di Management Studio, è possibile scegliere di visualizzare un piano di esecuzione stimato oppure il piano di esecuzione effettivo facendo clic sul pulsante Visualizza piano di esecuzione stimato o sul pulsante Includi piano di esecuzione effettivo nella barra degli strumenti dell'editor di query. Se si fa clic su Visualizza piano di esecuzione stimato, lo script viene analizzato e viene generato un piano di esecuzione stimato. Se si fa clic su Includi piano di esecuzione effettivo, prima di generare il piano di esecuzione è necessario eseguire lo script. Dopo l'analisi o l'esecuzione dello script, selezionare la scheda Piano di esecuzione per visualizzare una rappresentazione grafica dell'output del piano di esecuzione.

Per utilizzare la funzionalità relativa al piano di esecuzione grafico in Management Studio e le opzioni dell'istruzione SET Showplan di Transact-SQL, è necessario che gli utenti dispongano di autorizzazioni sufficienti per eseguire le istruzioni e le query Transact-SQL. È inoltre necessario concedere agli utenti l'autorizzazione SHOWPLAN per tutti i database contenenti gli oggetti a cui si fa riferimento. Per ulteriori informazioni, vedere Aspetti di sicurezza relativi a Showplan.

Consultazione dell'output del piano di esecuzione grafico

Per visualizzare il piano di esecuzione, selezionare la scheda Piano di esecuzione nel riquadro dei risultati. L'output del piano di esecuzione grafico in SQL Server Management Studio deve essere letto da destra a sinistra e dall'alto verso il basso. Vengono visualizzate tutte le query del batch analizzato, con il costo di ogni query espresso come percentuale del costo totale del batch. Per ulteriori informazioni sulle icone utilizzate per visualizzare i piani di esecuzione in Management Studio, vedere Icone del piano di esecuzione grafico (SQL Server Management Studio).

Nelle descrizioni seguenti sono disponibili le linee guida per l'interpretazione dell'output del piano di esecuzione grafico in Management Studio:

  • Ogni nodo della struttura ad albero è rappresentato da un'icona, che specifica l'operatore fisico e l'operatore logico utilizzati per l'esecuzione di una parte della query o dell'istruzione.

  • Ogni nodo è correlato a un nodo padre. I nodi figlio appartenenti allo stesso nodo padre vengono rappresentati nella stessa colonna. Tuttavia, non tutti i nodi della stessa colonna appartengono necessariamente allo stesso nodo padre. Ogni nodo è connesso al nodo padre da righe provviste di frecce alle estremità.

  • Gli operatori sono visualizzati come simboli associati a un'entità padre specifica.

  • L'ampiezza della freccia è proporzionale al numero di righe. Se disponibile, viene utilizzato il numero effettivo di righe. In mancanza, viene utilizzato il numero di righe stimato.

  • Se la query include più istruzioni vengono tracciati più piani di esecuzione della query.

  • Gli elementi della struttura ad albero visualizzati dipendono dal tipo di istruzione eseguito.

  • Nel caso di query parallele, che prevedono più CPU, nella finestra Proprietà relativa a ogni nodo del piano di esecuzione grafico vengono visualizzate informazioni sui thread del sistema operativo utilizzati. Per visualizzare le proprietà relative a un nodo, fare clic con il pulsante destro del mouse sul nodo e quindi scegliere Proprietà. Per ulteriori informazioni sulle query parallele, vedere Elaborazione parallela di query.

    Tipo di istruzione

    Elemento della struttura ad albero

    Istruzioni Transact-SQL e stored procedure

    Se l'istruzione è una stored procedure o un'istruzione Transact-SQL, diventa la radice della struttura ad albero del piano di esecuzione grafico. La stored procedure può includere vari figli, corrispondenti alle istruzioni richiamate dalla stored procedure. Ogni figlio è un nodo o un ramo della struttura ad albero.

    Istruzioni DML (Data Manipulation Language)

    Se l'istruzione analizzata da Query Optimizer di SQL Server è un'istruzione DML quale SELECT, INSERT, DELETE o UPDATE, l'istruzione DML è la radice della struttura ad albero. Le istruzioni DML possono includere fino a due figli. Il primo figlio è il piano di esecuzione per l'istruzione DML. Il secondo figlio rappresenta un trigger, se questo è utilizzato nell'istruzione o dall'istruzione.

    Istruzione condizionale

    Nel piano di esecuzione grafico le istruzioni condizionali, quali le istruzioni IF...ELSE (se la condizione è vera eseguire l'operazione, altrimenti eseguire l'istruzione alternativa) vengono suddivise in tre figli. L'istruzione IF...ELSE è la radice della struttura ad albero. La condizione IF diventa un nodo di un sottoalbero. Le condizioni THEN e ELSE vengono rappresentate come blocchi di istruzioni. Le istruzioni WHILE e DO-UNTIL vengono rappresentate con un piano simile. Alle istruzioni IF e WHILE sono associate icone specifiche.

    Operatori relazionali

    Le operazioni eseguite dal motore di query quali le scansioni di tabella, i join e le aggregazioni, vengono rappresentate come nodi dell'albero.

    DECLARE CURSOR

    L'istruzione DECLARE CURSOR è la radice della struttura ad albero del piano di esecuzione grafico. L'istruzione correlata è rappresentata come figlio o nodo.

A ognuno dei tre tipi di icona sono associati singoli colori. Le icone dell'iteratore, ovvero degli operatori logici e fisici, sono blu, le icone dei cursori sono gialle e le icone degli elementi del linguaggio sono verdi.

Descrizioni dei comandi dei nodi del piano di esecuzione grafico

Quando si posiziona il cursore su un nodo, vengono visualizzate le descrizioni dei comandi disponibili, come illustrato nella tabella seguente. Non tutti i nodi di un piano di esecuzione grafico includono tutte le descrizioni di comandi riportate di seguito.

Elemento della descrizione di comando

Descrizione

Operazione fisica

L'operatore fisico utilizzato, quale Hash Join o Nested Loops. Gli operatori fisici visualizzati in rosso indicano che Query Optimizer ha generato un avviso, ad esempio per segnalare la mancanza di statistiche per le colonne o di predicati di join. Di conseguenza è possibile che Query Optimizer scelga un piano di query meno efficiente del previsto. Per ulteriori informazioni sulle statistiche di colonna, vedere Utilizzo di statistiche per migliorare le prestazioni di esecuzione delle query.

Quando il piano di esecuzione grafico suggerisce la creazione o l'aggiornamento di statistiche oppure la creazione di un indice, è possibile creare o aggiornare immediatamente le statistiche di colonna e gli indici mancanti utilizzando i menu di scelta rapida in Esplora oggetti di SQL Server Management Studio. Per ulteriori informazioni, vedere Procedure per gli indici.

Operazione logica

L'operatore logico corrispondente all'operatore fisico, ad esempio l'operatore Inner Join. L'operatore logico viene elencato dopo l'operatore fisico nella parte superiore della descrizione del comando.

Dimensioni stimate righe

Le dimensioni stimate della riga restituita dall'operatore (byte).

Costo I/O stimato

Il costo stimato di tutta l'attività I/O per l'operazione. Questo valore dovrebbe essere il più basso possibile.

Costo CPU stimato

Il costo stimato di tutta l'attività della CPU per l'operazione.

Costo stimato operatore

Il costo dell'esecuzione di questa operazione in Query Optimizer. Il costo di questa operazione come percentuale del costo totale della query viene visualizzato tra parentesi. Poiché il motore query seleziona l'operazione più efficiente per l'esecuzione della query o dell'istruzione, il valore dovrebbe essere il più basso possibile.

Costo stimato sottoalbero

Il costo totale sostenuto da Query Optimizer per l'esecuzione dell'operazione corrente e di tutte le operazioni precedenti nella stessa sottoalbero.

Numero stimato di righe1

Il numero di righe restituite dall'operatore.

1 Questo elemento della descrizione dei comandi viene visualizzato come Numero di righe in un piano di esecuzione effettivo.

Nota

Le informazioni disponibili nei campi Argomento dei piani di esecuzione grafici di SQL Server 2000 vengono ora visualizzate separatamente nelle descrizioni dei comandi dei piani di esecuzione grafico.

Proprietà dei nodi del piano di esecuzione grafico

È possibile visualizzare informazioni dettagliate sui nodi del piano di esecuzione grafico, facendo clic con il pulsante destro del mouse sul nodo e quindi scegliendo Proprietà.