Condividi tramite


SQL Server Profiler

Si applica a: SQL Server Istanza gestita di SQL di Azure

SQL Server Profiler è un'interfaccia per la creazione e la gestione di tracce e per l'analisi e la riproduzione dei risultati di tali tracce. Gli eventi vengono salvati in un file di traccia che può essere analizzato o usato successivamente per riprodurre una serie specifica di passaggi allo scopo di diagnosticare un problema.

Importante

  • Traccia SQL e SQL Server Profiler sono deprecati. Anche lo spazio dei nomi Microsoft.SqlServer.Management.Trace che contiene gli oggetti Trace e Replay di Microsoft SQL Server è deprecato. Tuttavia, sono supportati i carichi di lavoro per Analysis Services.
  • Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
  • In alternativa, usare Eventi estesi. Per altre informazioni sugli eventi estesi, vedere Avvio rapido: Eventi estesi in SQL Server e Profiler XEvent di SSMS.

Nota

Quando si prova a connettersi a un database SQL di Azure da SQL Server Profiler, viene erroneamente generato un messaggio di errore fuorviante come segue:

  • Per eseguire una traccia su SQL Server, è necessario essere un membro del ruolo predefinito del server sysadmin o disporre dell'autorizzazione ALTER TRACE.

Il messaggio dovrebbe spiegare che il database SQL di Azure non è supportato da SQL Server Profiler.

Dove si trova il Profiler?

È possibile avviare Profiler all'interno di SQL Server Management Studio o con Azure Data Studio usando l'estensione SQL Server Profiler.

Acquisire e riprodurre i dati di traccia

Nella tabella seguente vengono mostrate le funzionalità che si consiglia di usare in SQL Server per acquisire e riprodurre i dati di traccia.

Funzionalità\Carico di lavoro di destinazione Motore relazionale Analysis Services
Acquisizione traccia Interfaccia utente grafica deglieventi estesi in SQL Server Management Studio SQL Server Profiler
Riproduzione della traccia Riesecuzione distribuita SQL Server Profiler

Usare 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ò quindi 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 relativi a 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 il funzionamento di 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 di eventi Blocchi. Tuttavia, le categorie di eventi esistono solo all'interno di SQL Server Profiler. Questo termine non rispecchia la 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 si applica 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.

Traccia

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. 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.

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

Filtro

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 attività Articolo
Vengono elencati i modelli predefiniti forniti in SQL Server per esaminare certi 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 e altri)
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 e altri)
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 articoli 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)

Eventi estesi vs. SQL Server Profiler

Gli eventi estesi e SQL Server Profiler sono strumenti per il monitoraggio e la risoluzione dei problemi relativi alle prestazioni di SQL Server. SQL Server Profiler è deprecato e deve essere usato solo con Analysis Services. Gli eventi estesi sono la sostituzione di SQL Server Profiler e offrono funzionalità avanzate di risoluzione dei problemi non disponibili altrove. Le differenze principali sono indicate qui per facilitare la migrazione da SQL Server Profiler a eventi estesi.

Strumento eventi estesi

Eventi estesi è un sistema di gestione degli eventi leggero, altamente scalabile e flessibile integrato in SQL Server.

Le sessioni di Eventi estesi in genere utilizzano meno risorse rispetto ad Analisi SQL e SQL Server Profiler, rendendole più adatte per gli ambienti di produzione. Gli eventi estesi supportano l'acquisizione di eventi disponibili nelle versioni moderne di SQL.

Al contrario, gli eventi disponibili in Analisi SQL/SQL Server Profiler sono invece limitati alle funzionalità disponibili in SQL Server 2008R2 e versioni precedenti. Gli eventi estesi offrono funzionalità di filtro superiori, un payload predefinito più piccolo e funzionalità non disponibili in Profiler, ad esempio destinazioni in memoria e aggregazione e supporto per più destinazioni.

Per ulteriori informazioni sugli eventi estesi, vedere eventi estesi.

Strumento SQL Server Profiler

SQL Server Profiler è un'interfaccia utente grafica che usa traccia SQL per acquisire attività per un'istanza di SQL Server o Analysis Services.

SQL Server Profiler può richiedere un utilizzo intensivo delle risorse se configurato in modo non corretto, con un impatto sulle prestazioni del server, soprattutto se usato nei server di produzione. Include modelli predefiniti per supportare la traccia rapida.

In sintesi, anche se SQL Server Profiler è uno strumento meno recente che può essere familiare a molti utenti, gli eventi estesi sono un'alternativa moderna che offre prestazioni migliori, informazioni sugli eventi più dettagliate e funzionalità per la risoluzione dei problemi e il monitoraggio delle istanze di SQL Server non disponibili altrove. Grazie ai vantaggi di Profiler, gli eventi estesi sono consigliati per il nuovo lavoro di traccia e monitoraggio.