Condividi tramite


Analisi di una query

Motore di database di SQL Server consente di visualizzare il meccanismo di esplorazione delle tabelle e di utilizzo degli indici per l'accesso o l'elaborazione dei dati di una query o di un'altra istruzione DML, ad esempio un aggiornamento. Tale meccanismo viene illustrato nella visualizzazione di un piano di esecuzione. Per analizzare una query con esecuzione rallentata, è utile esaminare il relativo piano di esecuzione al fine di determinare la causa del problema. Per ulteriori informazioni sulla creazione e sull'utilizzo dei piani di esecuzione in SQL Server, vedere Elaborazione di istruzioni SQL e Caching e riutilizzo del piano di esecuzione.

È possibile visualizzare i piani di esecuzione utilizzando i metodi seguenti:

  • SQL Server Management Studio

    Consente di visualizzare una rappresentazione grafica di un piano di esecuzione stimato, per il quale non è prevista l'esecuzione delle istruzioni, oppure di un piano di esecuzione effettivo, relativo alle istruzioni eseguite, che è possibile salvare ed esaminare in Management Studio.

  • Opzioni dell'istruzione Transact-SQL SET

    Se si utilizzano le opzioni dell'istruzione Transact-SQL SET, è possibile creare piani di esecuzione stimati ed effettivi in formato XML o testo.

  • Classi di evento di SQL Server Profiler

    È possibile selezionare le classi di evento di SQL Server Profiler da includere nelle tracce che generano piani di esecuzione stimati ed effettivi in formato XML o testo nei risultati della traccia.

Se si utilizza uno di questi metodi per visualizzare i piani di esecuzione, verrà visualizzato il piano di esecuzione ottimale utilizzato da Motore di database per singole istruzioni DML e Transact-SQL. Il piano include le informazioni della fase di compilazione relative alle stored procedure e le stored procedure richiamate fino a un numero arbitrario di livelli di chiamata. Ad esempio, l'esecuzione di un'istruzione SELECT può indicare che Motore di database utilizza la scansione di una tabella per ottenere i dati. L'esecuzione di un'istruzione SELECT può indicare inoltre che verrà utilizzata la scansione di un indice se il Motore di database determina che questo è il metodo più rapido per recuperare i dati dalla tabella.

Contenuto della sezione