SQL Server Profiler

SQL Server Profiler è un'interfaccia avanzata per creare e gestire tracce e analizzare e riprodurre i risultati della traccia. Gli eventi vengono salvati in un file di traccia che è possibile analizzare o utilizzare in un momento successivo per riprodurre una serie specifica di passaggi allo scopo di diagnosticare un problema.

Importante

Si annuncia la deprecazione di SQL Server Profiler per l'acquisizione e la riproduzione della traccia del motore di database. Queste funzionalità saranno supportate nella versione successiva di SQL Server, ma verranno rimosse in una versione successiva. La versione specifica di SQL Server non è stata determinata. Anche lo spazio dei nomi Microsoft.SqlServer.Management.Trace che contiene gli oggetti Trace e Replay di Microsoft SQL Server verranno deprecati. Si noti che SQL Server Profiler per i carichi di lavoro di Analysis Services non è deprecato e continuerà a essere supportato.

La tabella seguente illustra le funzionalità che è consigliabile usare in SQL Server 2014 per acquisire e riprodurre i dati di traccia:

Funzionalità\Carico di lavoro di destinazione Motore relazionale Analysis Services
Acquisizione traccia Interfaccia utente grafica degli eventi estesi in SQL Server Management Studio SQL Server Profiler
Riproduzione della traccia Distributed Replay SQL Server Profiler

Vantaggi di SQL Server Profiler

Microsoft SQL Server Profiler è un'interfaccia utente grafica di Traccia SQL che consente di monitorare un'istanza del motore di database o di Analysis Services. È possibile acquisire e salvare i dati di ogni evento in un file o in una tabella per operazioni di analisi successive. È ad esempio possibile monitorare un ambiente di produzione per verificare quali stored procedure hanno effetto sulle prestazioni a causa di un'esecuzione troppo lenta. SQL Server Profiler viene usato per attività come:

  • Esecuzione dei singoli passaggi di query problematiche allo scopo di individuare la causa del problema.

  • Individuazione e diagnosi di query con esecuzione rallentata.

  • Acquisizione della serie di istruzioni Transact-SQL che ha generato un problema. La traccia salvata può essere quindi utilizzata per replicare il problema in un server di prova nel quale è possibile eseguire la diagnosi.

  • Monitoraggio delle prestazioni di SQL Server per l'ottimizzazione dei carichi di lavoro. Per informazioni sull'ottimizzazione della progettazione fisica del database per i carichi di lavoro del database, vedere Database Engine Tuning Advisor.

  • Correlazione dei contatori delle prestazioni per la diagnosi dei problemi.

SQL Server Profiler supporta anche il controllo delle azioni eseguite sulle istanze di SQL Server. I controlli registrano le azioni relative alla sicurezza per un'analisi successiva da parte di un amministratore della sicurezza.

Concetti di base su SQL Server Profiler

Per usare SQL Server Profiler, è necessario conoscere il significato dei termini che descrivono come funziona lo strumento.

Nota

Quando si usa SQL Server Profiler, è utile comprendere la traccia SQL. Per altre informazioni, vedere SQL Trace.

Event
Un evento è un'azione generata all'interno di un'istanza del motore di database di SQL Server. Sono esempi di eventi:

  • Connessioni, errori di connessione e disconnessioni.

  • Istruzioni Transact-SQL SELECT, INSERT, UPDATE e DELETE.

  • Stato di batch RPC (Remote Procedure Call).

  • Inizio o fine di una stored procedure.

  • Inizio o fine delle istruzioni contenute nelle stored procedure.

  • Inizio o fine di un batch SQL.

  • Errore scritto nel log dei errori di SQL Server.

  • Blocco acquisito o rilasciato su un oggetto di database.

  • Cursore aperto.

  • Controlli delle autorizzazioni di sicurezza.

Tutti i dati generati da un evento vengono visualizzati in un'unica riga della traccia. La riga è intersecata da colonne di dati che riportano una descrizione dettagliata dell'evento.

EventClass
Una classe di evento è un tipo di evento che è possibile tracciare. La classe di evento contiene tutti i dati che possono essere restituiti da un evento. Sono esempi di classi di evento:

  • SQL:BatchCompleted

  • Audit Login

  • Audit Logout

  • Lock:Acquired

  • Lock:Released

EventCategory
Una categoria di eventi definisce il modo in cui gli eventi vengono raggruppati all'interno di SQL Server Profiler. Ad esempio, tutte le classi degli eventi di blocco sono raggruppate nella categoria Blocchi . Tuttavia, le categorie di eventi esistono solo all'interno di SQL Server Profiler. Il termine non si applica alla modalità di raggruppamento degli eventi del motore.

DataColumn
Una colonna di dati è un attributo di una classe di evento acquisita nella traccia. Poiché la classe di evento determina il tipo di dati che è possibile raccogliere, non è possibile applicare tutte le colonne di dati a tutte le classi. In una traccia che acquisisce la classe di evento Lock:Acquired , ad esempio, la colonna di dati BinaryData contiene il valore dell'ID o della riga della pagina bloccata, mentre la colonna di dati IntegerData non contiene alcun valore perché non è applicabile alla classe di evento acquisita.

Modello
Un modello consente di definire la configurazione predefinita per una traccia. In particolare, include le classi di evento di cui si desidera eseguire il monitoraggio con SQL Server Profiler. È ad esempio possibile creare un modello e specificare gli eventi, le colonne di dati e i filtri da utilizzare. I modelli non vengono eseguiti, ma salvati in un file con estensione tdf. Dopo il salvataggio, i modelli consentono di controllare i dati di traccia acquisiti quando viene avviata una traccia basata sul modello.

Trace
Una traccia consente di acquisire i dati in base alle classi di eventi, alle colonne di dati e ai filtri selezionati. È ad esempio possibile creare una traccia per il monitoraggio delle eccezioni. A tale scopo, selezionare la classe di evento Exception e le colonne di dati Error, Statee Severity . Affinché i risultati della traccia includano dati significativi, è necessario raccogliere i dati di queste tre colonne. È quindi possibile eseguire una traccia configurata in tale modo e raccogliere i dati in tutti gli eventi Exception che si verificano nel server. I dati di traccia possono essere salvati o utilizzati immediatamente per attività di analisi. Le tracce possono essere riprodotte in un secondo momento, sebbene alcuni eventi, quali quelli Exception , non vengano mai riprodotti. È inoltre possibile salvare la traccia come modello e compilare tracce simili in futuro.

SQL Server prevede due metodi per tracciare un'istanza di SQL Server, ovvero tramite SQL Server Profiler oppure con stored procedure di sistema.

Filter
Quando si crea una traccia o un modello, è possibile definire i criteri per applicare un filtro ai dati acquisiti dall'evento. Per impedire che le tracce assumano dimensioni eccessive, è possibile filtrarle in modo da raccogliere solo un subset dei dati di evento. È, ad esempio, possibile limitare i nomi utenti di Microsoft Windows della traccia a utenti specifici, riducendo in tal modo la dimensione dei dati di output.

Se non si imposta un filtro, tutti gli eventi delle classi di evento selezionate vengono restituiti nell'output di traccia.

Attività di SQL Server Profiler

Descrizione dell'attività Argomento
Vengono elencati i modelli predefiniti forniti in SQL Server per esaminare determinati tipi di eventi e le autorizzazioni richieste per la riproduzione delle tracce. Modelli e autorizzazioni di SQL Server Profiler
Viene illustrato come eseguire SQL Server Profiler. Autorizzazioni necessarie per l'esecuzione di SQL Server Profiler
Viene illustrato come creare una traccia. Creare una traccia (SQL Server Profiler)
Viene illustrato come specificare eventi e colonne di dati per un file di traccia. Specificare eventi e colonne di dati per un file di traccia (SQL Server Profiler)
Viene illustrato come salvare i risultati della traccia in un file. Salvare i risultati della traccia in un file (SQL Server Profiler)
Viene illustrato come salvare i risultati della traccia in una tabella. Salvare i risultati della traccia in una tabella (SQL Server Profiler)
Viene illustrato come filtrare gli eventi in una traccia. Filtrare eventi in una traccia (SQL Server Profiler)
Viene illustrato come visualizzare informazioni sui filtri. Visualizzare informazioni sui filtri (SQL Server Profiler)
Viene illustrato come modificare un filtro. Modificare un filtro (SQL Server Profiler)
Viene illustrato come impostare le dimensioni massime di un file di traccia (SQL Server Profiler). Impostare le dimensioni massime di un file di traccia (SQL Server Profiler)
Viene illustrato come impostare le dimensioni massime di una tabella di traccia. Impostare le dimensioni massime di una tabella di traccia (SQL Server Profiler)
Viene illustrato come avviare una traccia. Avviare una traccia
Viene illustrato come avviare automaticamente una traccia dopo la connessione a un server. Avviare una traccia automaticamente dopo la connessione a un server (SQL Server Profiler)
Viene illustrato come filtrare gli eventi in base all'ora di inizio. Filtrare gli eventi in base all'ora di inizio (SQL Server Profiler)
Viene illustrato come filtrare gli eventi in base all'ora di fine. Filtrare eventi in base all'ora di fine (SQL Server Profiler)
Viene illustrato come filtrare gli ID del processo server (SPID) in una traccia. Filtrare gli ID del processo server (SPID) in una traccia (SQL Server Profiler)
Viene illustrato come sospendere una traccia. Sospendere una traccia (SQL Server Profiler)
Viene illustrato come arrestare una traccia. Arrestare una traccia (SQL Server Profiler)
Viene illustrato come eseguire una traccia dopo la sospensione o l'arresto. Eseguire una traccia dopo la sospensione o l'arresto (SQL Server Profiler)
Viene illustrato come cancellare il contenuto di una finestra di traccia. Cancellare il contenuto di una finestra di traccia (SQL Server Profiler)
Viene illustrato come chiudere una finestra di traccia. Chiudere una finestra di traccia (SQL Server Profiler)
Viene illustrato come impostare i valori predefiniti per la definizione della traccia. Impostare i valori predefiniti per una definizione di traccia (SQL Server Profiler)
Viene illustrato come impostare i valori predefiniti per la visualizzazione della traccia. Impostare i valori predefiniti per la visualizzazione delle tracce (SQL Server Profiler)
Viene illustrato come aprire un file di traccia. Aprire un file di traccia (SQL Server Profiler)
Viene illustrato come aprire una tabella di traccia. Aprire una tabella di traccia (SQL Server Profiler)
Viene illustrato come riprodurre una tabella di traccia. Riprodurre una tabella di traccia (SQL Server Profiler)
Viene illustrato come riprodurre un file di traccia. Riprodurre un file di traccia (SQL Server Profiler)
Viene illustrato come riprodurre un solo evento alla volta. Riprodurre un solo evento alla volta (SQL Server Profiler)
Viene illustrato come eseguire la riproduzione fino a un punto di interruzione. Riprodurre fino a un punto di interruzione (SQL Server Profiler)
Viene illustrato come eseguire la riproduzione in corrispondenza di un cursore. Riprodurre fino a un cursore (SQL Server Profiler)
Viene illustrato come riprodurre uno script Transact-SQL. Riprodurre uno script Transact-SQL (SQL Server Profiler)
Viene illustrato come creare un modello di traccia. Creare un modello di traccia (SQL Server Profiler)
Viene illustrato come modificare un modello di traccia. Modificare un modello di traccia (SQL Server Profiler)
Viene illustrato come impostare le opzioni di traccia globali. Impostare opzioni di traccia globali (SQL Server Profiler)
Viene illustrato come trovare un valore o una colonna di dati durante l'esecuzione di una traccia. Trovare un valore o una colonna di dati durante l'esecuzione di una traccia (SQL Server Profiler)
Viene illustrato come creare un modello basato su una traccia in esecuzione. Ottenere un modello da una traccia in esecuzione (SQL Server Profiler)
Viene illustrato come derivare un modello da un file o tabella di traccia. Derivare un modello da un file di traccia o da una tabella di traccia (SQL Server Profiler)
Viene illustrato come creare uno script Transact-SQL per l'esecuzione di una traccia. Creare uno script Transact-SQL per l'esecuzione di una traccia (SQL Server Profiler)
Viene illustrato come esportare un modello di traccia. Esportare un modello di traccia (SQL Server Profiler)
Viene illustrato come importare un modello di traccia. Importare un modello di traccia (SQL Server Profiler)
Viene illustrato come estrarre uno script da una traccia. Estrarre uno script da una traccia (SQL Server Profiler)
Viene illustrato come eseguire la correlazione tra una traccia e i dati dei log delle prestazioni di Windows. Correlare una traccia e i dati dei registri di prestazioni di Windows (SQL Server Profiler)
Viene illustrato come organizzare le colonne visualizzate in una traccia. Organizzare le colonne visualizzate in una traccia (SQL Server Profiler)
Viene illustrato come avviare SQL Server Profiler. Avviare SQL Server Profiler
Viene illustrato come salvare tracce e modelli di traccia. Salvare tracce e modelli di traccia
Viene illustrato come modificare i modelli di traccia. Modificare modelli di traccia
Viene illustrato come eseguire la correlazione tra una traccia e i dati dei log delle prestazioni di Windows. Correlare una traccia con i dati del log delle prestazioni di Windows
Viene illustrato come visualizzare e analizzare tracce con SQL Server Profiler. Visualizzare e analizzare le tracce con SQL Server Profiler
Viene illustrato come visualizzare e analizzare i deadlock con SQL Server Profiler. Analizzare deadlock con SQL Server Profiler
Viene illustrato come analizzare query con risultati SHOWPLAN in SQL Server Profiler. Analizzare query con risultati SHOWPLAN in SQL Server Profiler
Viene illustrato come filtrare tracce con SQL Server Profiler. Filtrare le tracce tramite SQL Server Profiler
Viene illustrato come utilizzare le funzionalità di riproduzione di SQL Server Profiler. Riprodurre le tracce
Vengono elencati gli argomenti della Guida sensibile al contesto di SQL Server Profiler. Guida sensibile al contesto di SQL Server Profiler
Elenca le stored procedure di sistema usate da SQL Server Profiler per monitorare prestazioni e attività. Stored procedure di SQL Server Profiler (Transact-SQL)

Vedere anche

Categoria di eventi Blocchi
Categoria di eventi Sessioni
Categoria di eventi Stored procedure
Categoria di eventi TSQL
Monitoraggio delle prestazioni e dell'attività del server