1. Introduzione a SQL Server Profiler
1.1 Che cos'è SQL Server Profiler e perché ne abbiamo bisogno?
SQL Server Profiler è uno strumento di interfaccia utente grafica per il monitoraggio e l'acquisizione di eventi che si verificano all'interno SQL ServerQuesto potente strumento diagnostico consente agli amministratori e agli sviluppatori di database di osservare l'attività del motore del database in tempo reale, aiutando a identificare i colli di bottiglia delle prestazioni, a risolvere i problemi delle applicazioni e a verificare gli eventi di sicurezza.
1.2 SQL Server Profiler nel 2025: stato attuale e alternative
Microsoft ha deprecato SQL Server Profiler che inizia con SQL Server 2016, raccomandando Eventi estesi come tecnologia sostitutiva. Tuttavia, lo strumento rimane disponibile negli attuali SQL Server versioni compreso SQL Server 2022 ed è ancora ampiamente utilizzato dai professionisti dei database.
1.3 Chi dovrebbe usare questa guida
- Questa guida è utile agli amministratori di database che hanno bisogno di monitorare SQL Server istanze, diagnosticare problemi di prestazioni e garantire l'affidabilità del sistema. Gli amministratori di database troveranno indicazioni pratiche per acquisire tracce, analizzare eventi e implementare strategie di monitoraggio.
- Gli sviluppatori di applicazioni traggono vantaggio dalla comprensione del modo in cui il loro codice interagisce con SQL ServerSQL Profiler aiuta gli sviluppatori a identificare query inefficienti, convalidare il comportamento delle applicazioni e correggere gli errori relativi al database.
- Analisti e consulenti delle prestazioni scopriranno tecniche avanzate per l'analisi del carico di lavoro, la pianificazione della capacità e l'ottimizzazione del sistema. La copertura completa di configurazione, filtraggio e analisi delle tracce consente valutazioni approfondite delle prestazioni del database.
2. Comprensione SQL Server Fondamenti del profiler
2.1 Come SQL Server Profiler funziona
SQL Server Profiler funziona come un'applicazione client che si connette al motore SQL Trace in esecuzione all'interno SQL ServerQuando si crea una traccia, il motore di database monitora gli eventi specificati e li acquisisce in base alla configurazione. Se configurato correttamente, il motore di traccia raccoglie i dati degli eventi con un impatto minimo sulle prestazioni del server.
L'infrastruttura SQL Trace sottostante utilizza hook di eventi leggeri in tutto il motore di database. Quando si verifica un evento che corrisponde alla definizione di traccia, il motore acquisisce le informazioni rilevanti e le invia all'interfaccia del Profiler o le memorizza in un file o in una tabella. Questa architettura consente una raccolta dati flessibile senza modificare il codice dell'applicazione.
2.2 Concetti chiave e terminologia
2.2.1 Eventi
Gli eventi rappresentano eventi specifici all'interno SQL Server che il motore di tracciamento può catturare. Ogni evento corrisponde a una particolare operazione del database o attività di sistema. SQL Server Profiler organizza gli eventi in categorie logiche per una configurazione più semplice.
Le categorie di eventi più comuni includono TSQL per l'esecuzione di query, Stored Procedure per le chiamate di procedura, Lock per il monitoraggio della concorrenza ed Errori e Avvisi per il tracciamento delle eccezioni. La selezione degli eventi appropriati determina quali informazioni vengono acquisite dalla traccia e influisce direttamente sull'utilità e sul sovraccarico prestazionale della traccia.
Comprendere i tipi di evento aiuta a configurare tracce efficaci. Gli eventi RPC:Completed catturano i completamenti delle chiamate a procedura remota, gli eventi SQL:BatchCompleted tracciano i batch di query ad hoc e gli eventi Lock:Deadlock identificano le occorrenze di deadlock. Scegli gli eventi che si allineano ai tuoi obiettivi specifici di risoluzione dei problemi o monitoraggio.
2.2.2 Colonne di dati
Le colonne dati definiscono quali informazioni la traccia cattura per ciascun evento. Le colonne più comuni includono TextData per l'istruzione SQL effettiva, Duration per il tempo di esecuzione, CPU per l'utilizzo del processore, Reads per le letture logiche del disco e Writes per le scritture logiche del disco.
Le colonne essenziali variano in base al caso d'uso. La risoluzione dei problemi di prestazioni richiede in genere le colonne Duration, CPU, Reads e Writes. L'audit di sicurezza richiede le colonne LoginName, DatabaseName e ObjectName. Il debug delle applicazioni trae vantaggio dalle colonne ApplicationName, SPID ed Error.
Selezionare solo le colonne necessarie riduce il sovraccarico di tracciamento e semplifica l'analisi. Evitare di acquisire tutte le colonne disponibili, a meno che non sia specificamente necessario. Ogni colonna aggiuntiva aumenta la quantità di dati raccolti ed elaborati, con un potenziale impatto sulle prestazioni del server.
Filtri 2.2.3
I filtri limitano gli eventi che la traccia cattura in base a criteri specifici. Filtri configurati correttamente riducono drasticamente il volume delle tracce, rendendo l'analisi gestibile e minimizzando l'impatto sulle prestazioni. I filtri valutano i dati degli eventi prima dell'acquisizione, impedendo la raccolta di dati non necessari.
I criteri di filtro più comuni includono DatabaseName per concentrarsi su database specifici, ApplicationName per isolare applicazioni specifiche, Duration per catturare solo le operazioni lente e LoginName per tracciare utenti specifici. Combinando più filtri si creano definizioni di traccia precise che catturano esattamente ciò di cui si ha bisogno.
Il filtraggio attento alle prestazioni è essenziale per gli ambienti di produzione. Filtrare sempre per NomeDatabase o NomeApplicazione per evitare di catturare l'attività di sistema. Impostare soglie minime di Durata per ignorare le query ad esecuzione rapida. Utilizzare i filtri TextData con cautela, poiché richiedono confronti di stringhe che aggiungono overhead.
2.2.4 Modelli di traccia
I modelli di traccia forniscono selezioni preconfigurate di eventi, colonne e filtri per scenari comuni. SQL Server Profiler include diversi modelli predefiniti che fungono da punti di partenza per la creazione di tracce. I modelli personalizzati salvano le configurazioni per poterle riutilizzare in più sessioni di tracciamento.
Il modello Standard cattura un set generale di eventi adatto al monitoraggio di base. Il modello TSQL si concentra sull'esecuzione di query con un overhead minimo. Il modello Tuning raccoglie eventi specifici per l'analisi di Database Engine Tuning Advisor. Ogni modello bilancia l'acquisizione di informazioni con l'impatto sulle prestazioni.
La creazione di modelli personalizzati consente di risparmiare tempo e garantisce la coerenza tra le sessioni di tracciamento. Configura una traccia con i tuoi eventi, colonne e filtri preferiti, quindi salvala come modello. I modelli personalizzati diventano particolarmente utili quando si risolvono ripetutamente problemi simili.
3. Iniziare con SQL Server Profiler
3.1 Requisiti di sistema e prerequisiti
SQL Server Profiler è fornito in bundle con SQL Server Management Studio e supporta tutti gli strumenti attualmente mantenuti SQL Server versioni, da SQL Server 2016 a 2022.
I requisiti di autorizzazione determinano chi può creare ed eseguire tracce. I membri del ruolo fisso del server sysadmin hanno accesso illimitato a SQL Server Funzionalità di profiler. Per gli utenti non amministratori di sistema, l'autorizzazione ALTER TRACE consente di creare e gestire tracce.
Quando si tracciano server remoti, si applicano considerazioni di rete. Le tracce lato client richiedono una connettività di rete continua tra la workstation e il SQL Server istanza. Le connessioni interrotte interrompono le tracce lato client, con conseguente potenziale perdita dei dati acquisiti. Le tracce lato server aggirano questa limitazione, essendo eseguite interamente sul server del database.
3.2 Come avviare SQL Server Profiler
3.2.1 Partendo da SQL Server Studio di gestione (SSMS)
Segui questi passaggi per avviare SQL Server Profiler di SSMS:
- Apri SQL Server Management Studio e connettiti a qualsiasi SQL Server esempio.
- Clicca su Strumenti menu nella barra dei menu in alto.
- Seleziona SQL Server Profiler Dal menu a discesa.
- Migliori SQL Server L'applicazione Profiler si avvia in una nuova finestra.
3.2.2 Avvio dal menu Start di Windows
accesso a SQL Server Profiler direttamente da Windows seguendo questi passaggi:
- Fare clic su Windows Inizio pulsante.
- Tipo SQL Server Profiler nella casella di ricerca.
- Seleziona SQL Server Profiler dai risultati della ricerca.
- L'applicazione si avvia senza connessioni attive.
In alternativa, è possibile navigare attraverso la gerarchia del menu Start:
- Aprire il Inizio menu.
- individuare il Microsoft SQL Server Strumenti cartella.
- Espandi la cartella e fai clic SQL Server Profiler.
3.2.3 Connessione a SQL Server Istanze
Dopo il lancio SQL Server Profiler, stabilisci una connessione seguendo questi passaggi:
- Clicchi Compila il nella barra dei menu.
- Seleziona Nuova traccia Dal menu a discesa.
- Migliori Connetti al server viene visualizzata la finestra di dialogo.
- Inserisci il nome del tuo server nel Nome del server campo.
- Scegli Autenticazione di Windows or SQL Server Autenticazione.
- Se si utilizza SQL Server Autenticazione, inserisci le tue credenziali di accesso.
- Clicchi Connettere per stabilire la connessione.
Per le connessioni remote, specificare il nome completo del server, incluso il nome dell'istanza, se applicabile. Utilizzare il formato NOME_SERVER\NOME_ISTANZA per le istanze denominate. Verificare la connettività di rete e le impostazioni del firewall in caso di errore di connessione.
4. Creazione e configurazione SQL Server tracce
4.1 Creazione della prima traccia utilizzando un modello
Crea la tua prima traccia seguendo questi passaggi:
- Lancio SQL Server Profilatore.
- Clicchi Compila il -> Nuova traccia e connettiti al server di destinazione.
- Migliori Proprietà della traccia viene visualizzata la finestra di dialogo.
- Inserisci un nome descrittivo nel Nome della traccia campo.
- Seleziona un modello da Usa il modello cadere in picchiata.
- Scegliere il Standard (predefinito) Modello per il monitoraggio generale. Oppure un altro modello per altri scopi. Il modello fornisce eventi, colonne e filtri preconfigurati per scenari comuni.
- Clicchi Correre per iniziare a registrare gli eventi immediatamente.
4.2 Personalizza la tua traccia
Spesso, i modelli non soddisfano le tue esigenze. In tal caso, puoi personalizzare completamente la tua traccia:
- Nel Proprietà della traccia dialogo.
- Seleziona il luminoso modello dal Usa il modello cadere in picchiata.
- Clicca su Selezione Eventi scheda, ora puoi personalizzare tutti gli eventi, le colonne dati e i filtri in base alle tue esigenze. Ne parleremo nelle sezioni seguenti.
4.3 Selezione degli eventi da catturare
Puoi selezionare un evento nel Selezione Eventi scheda:
- Clicca su + icona accanto alla categoria Evento per espanderla.
- Fare clic sulla casella di controllo accanto all'evento per selezionarlo.
4.3.1 Comprensione delle categorie di eventi
SQL Server Profiler organizza gli eventi in categorie per un raggruppamento logico. La categoria Procedure memorizzate include eventi relativi all'esecuzione delle procedure, tra cui SP:Starting, SP:Completed e SP:StmtCompleted. Questi eventi tengono traccia delle chiamate alle procedure memorizzate e dell'esecuzione delle singole istruzioni all'interno delle procedure.
La categoria TSQL cattura l'esecuzione di query ad hoc con eventi come SQL:BatchStarting e SQL:BatchCompleted. Questi eventi tengono traccia delle query inviate direttamente a SQL Server al di fuori delle procedure memorizzate.
La categoria Blocchi monitora gli eventi relativi alla concorrenza, tra cui Blocco: Acquisito, Blocco: Rilasciato, Blocco: Deadlock e Blocco: Timeout. Utilizza questi eventi per diagnosticare problemi di blocco e deadlock che incidono sulle prestazioni dell'applicazione.
La categoria Errori e avvisi cattura gli eventi di eccezione, tra cui Eccezione, Attenzione e Messaggio di errore utente. Questi eventi aiutano a identificare gli errori dell'applicazione e SQL Server avvisi durante le sessioni di traccia.
4.3.2 Scegliere gli eventi giusti per il tuo scenario
Il monitoraggio delle prestazioni richiede eventi che catturino il consumo di risorse. Seleziona RPC:Completed e SQL:BatchCompleted per monitorare l'esecuzione delle query. Includi le colonne Durata, CPU, Letture e Scritture per misurare l'utilizzo delle risorse. Questi eventi forniscono la base per identificare i colli di bottiglia delle prestazioni.
L'audit di sicurezza richiede eventi che tengano traccia di autenticazione e autorizzazione. Selezionare "Audit Login", "Audit Logout", "Audit Login Failed" e "Object:Opened" per monitorare l'accesso al database. Includere le colonne "LoginName", "DatabaseName" e "ObjectName" per identificare chi ha avuto accesso a quali risorse.
Gli scenari di debug traggono vantaggio da un'acquisizione completa degli eventi. Includi eventi di stored procedure, eventi batch SQL ed eventi di errore per tracciare flussi di esecuzione completi. Acquisisci contesto aggiuntivo con le colonne SPID, ApplicationName e HostName per correlare gli eventi a sessioni specifiche.
4.4 Configurazione delle colonne di dati
Per impostazione predefinita, quando si seleziona un evento, tutte le relative colonne di dati saranno selezionate (selezionate). È possibile deselezionare le colonne non necessarie per ridurre il sovraccarico e semplificare l'analisi:
Le colonne essenziali per ogni traccia includono EventClass per identificare il tipo di evento, TextData per acquisire l'effettiva istruzione SQL, LoginName per identificare l'utente che l'ha eseguita e StartTime per indicare l'ora in cui si è verificato l'evento. Queste colonne forniscono un contesto fondamentale per ogni evento acquisito.
Le colonne relative alle prestazioni misurano il consumo di risorse. La durata indica la durata di un evento in microsecondi. La CPU mostra il tempo di elaborazione in millisecondi. Le letture contano le letture di pagine logiche. Le scritture tengono traccia delle scritture di pagine logiche. Queste metriche identificano le operazioni ad alto consumo di risorse che richiedono ottimizzazione.
Le colonne di sicurezza e audit tracciano i modelli di accesso ai dati. DatabaseName identifica il database a cui è stato effettuato l'accesso. ObjectName specifica la tabella o l'oggetto coinvolto. ApplicationName rivela quale applicazione ha avviato l'attività. Insieme, queste colonne forniscono audit trail completi.
4.5 Impostazione dei filtri per ridurre il rumore
4.5.1 Criteri di filtro comuni
Configurare i filtri utilizzando il seguente approccio:
- Aprire il Proprietà della traccia dialogo.
- Clicca su Selezione Eventi scheda.
- Clicchi Filtri a colonna pulsante in basso a destra.
- Selezionare una colonna dall'elenco a sinistra.
- Configura i criteri di filtro nel pannello a destra.
- Clicchi OK per applicare il filtro.
I filtri per i nomi delle applicazioni isolano l'attività da applicazioni specifiche. Espandi la colonna ApplicationName nella finestra di dialogo del filtro, inserisci il nome dell'applicazione nel Come campo, e SQL Server Profiler cattura solo gli eventi provenienti da quell'applicazione. Questo filtro si rivela prezioso per la risoluzione di problemi specifici dell'applicazione.
I filtri per nome database limitano l'acquisizione a database specifici. Filtra per NomeDatabase per escludere l'attività del database di sistema e concentrarti sui database delle tue applicazioni. Inserisci i nomi dei database nel Come or Pari campo a seconda che sia necessaria la corrispondenza con caratteri jolly.
I filtri di durata catturano solo le operazioni a esecuzione lenta. Imposta una soglia minima in Maggiore o uguale campo nella colonna Durata. Ad esempio, impostando Durata >= 1000 vengono acquisiti solo gli eventi che durano più di un secondo, filtrando le query ad esecuzione rapida.
I filtri per nome utente monitorano l'attività specifica dell'utente. Filtra per nome di accesso per monitorare specifici utenti del database. Questo approccio aiuta a identificare quali utenti eseguono query problematiche o accedono a dati sensibili.
4.4.2 Filtrare le migliori pratiche
Un filtraggio efficace bilancia l'acquisizione dei dati con l'impatto sulle prestazioni. Applica sempre almeno un filtro per evitare di acquisire un'attività di sistema eccessiva. I filtri DatabaseName e ApplicationName dovrebbero essere il punto di partenza per la maggior parte delle tracce.
Evitate tracce troppo generiche negli ambienti di produzione. Le tracce non filtrate acquisiscono enormi quantità di dati, potenzialmente compromettendo le prestazioni del server e rendendo l'analisi impraticabile. Impostate criteri di filtro specifici che si adattino ai vostri obiettivi di risoluzione dei problemi.
Testare i filtri prima di distribuirli in produzione. Eseguire prima le tracce negli ambienti di sviluppo o di test per verificare che i filtri catturino gli eventi previsti senza un sovraccarico eccessivo. Regolare i criteri di filtro in base al volume di dati acquisiti.
4.5 Lavorare con i modelli di traccia
4.5.1 Panoramica dei modelli integrati
Il modello Standard fornisce un'acquisizione di eventi bilanciata, adatta al monitoraggio generale. Include eventi comuni di esecuzione delle query, chiamate alle stored procedure e monitoraggio degli errori di base. Utilizza questo modello quando hai bisogno di una visibilità completa senza sapere esattamente cosa cercare.
Il modello TSQL si concentra specificamente sull'esecuzione di query con una selezione minima di eventi. Cattura gli eventi SQL:BatchCompleted e RPC:Completed con colonne essenziali per l'analisi delle prestazioni. Questo modello offre un overhead inferiore rispetto al modello Standard.
Il modello di ottimizzazione ottimizza la selezione degli eventi per l'analisi di Database Engine Tuning Advisor. Acquisisce eventi e colonne necessari per l'analisi del carico di lavoro e le raccomandazioni sugli indici. Utilizzare questo modello per preparare le tracce per l'ottimizzazione automatica delle prestazioni.
Il modello TSQL_Replay include tutti gli eventi e le colonne necessari per la funzionalità di trace replay. Acquisisce dettagli di esecuzione completi, consentendo di riprodurre i carichi di lavoro acquisiti in ambienti di test. Questo modello genera file di traccia di dimensioni maggiori grazie all'ampia raccolta di dati.
4.5.2 Creazione di modelli personalizzati
Crea modelli personalizzati seguendo questi passaggi:
- Clicchi Compila il -> Modelli -> Nuovo modello …
- Inserisci un nome descrittivo nel Nuovo nome del modello campo.
- Facoltativamente, seleziona Basare il nuovo modello su quello esistente e seleziona un modello esistente se non vuoi partire da zero:
- Clicca su Selezione evento scheda, personalizza il modello di traccia con gli eventi, le colonne e i filtri desiderati proprio come te fare con una traccia normale.
- Clicchi Salva per salvare il modello.
Modelli di esportazione per la condivisione con i membri del team o per scopi di backup:
- Clicchi Compila il -> Modelli -> Modello di esportazione.
- Seleziona il modello che vuoi esportare.
- Vai alla posizione di salvataggio desiderata.
- Immettere un nome file e fare clic Salva.
- Condividi il file *.tdf (SQL Server File modello del profiler) con altri SQL Server Utenti del profiler.
4.6 Salvataggio dell'output di traccia
Per impostazione predefinita, SQL Server Profiler mostrerà gli eventi nella finestra di traccia, ma NON li salverà. È possibile scegliere di salvare i dati di traccia in un file o in una tabella in Proprietà della traccia finestra di dialogo quando si crea una nuova traccia.
4.6.1 Salva su file
- Nel Proprietà della traccia dialogo, controllo Salva su file.
- Fare clic sull'icona della cartella per aprire il file browser.
- Vai alla posizione di salvataggio desiderata.
- Inserisci un nome file con estensione .trc.
- Clicchi Salva.
- Impostato Imposta la dimensione massima del file per limitare le dimensioni dei singoli file.
- Consentire a tutti Abilita il rollover dei file per creare più file.
- Abilita facoltativamente I processi del server tracciano i dati per le tracce lato server.
La gestione delle dimensioni dei file previene l'esaurimento dello spazio su disco. Imposta la dimensione massima dei file su un valore ragionevole, come 500 MB o 1 GB, in base allo spazio disponibile su disco e alla durata prevista della traccia. Il rollover dei file crea automaticamente nuovi file quando viene raggiunto il limite di dimensione, aggiungendo un numero al nome del file.
4.6.2 Salva nella tabella
- Nel Proprietà della traccia dialogo, controllo Salva nella tabella.
- Migliori Tabella di destinazione viene visualizzata la finestra di dialogo.
- Seleziona il server dal server cadere in picchiata.
- Scegli il database dal Banca Dati cadere in picchiata.
- Selezionare una tabella esistente o immettere un nuovo nome di tabella nel Table campo.
- Clicchi OK per confermare.
- Impostabile facoltativamente Imposta il numero massimo di righe per limitare le dimensioni della tabella.
Quando si salva in tabelle, si applicano considerazioni sulle prestazioni. L'archiviazione nelle tabelle introduce un sovraccarico aggiuntivo rispetto all'archiviazione dei file perché SQL Server È necessario scrivere i dati di traccia tramite il motore di archiviazione. Utilizzare l'archiviazione delle tabelle quando è necessario interrogare immediatamente i dati di traccia con T-SQL.
La conservazione dei dati diventa importante per le tracce basate su tabelle. Impostate limiti massimi di righe per evitare che le tabelle diventino troppo grandi. Archiviate o eliminate regolarmente i vecchi dati di traccia per mantenere le prestazioni. Valutate la possibilità di partizionare tabelle di traccia di grandi dimensioni per una migliore gestibilità.
5. Esecuzione e gestione SQL Server tracce
5.1 Avvio, pausa e arresto delle tracce
Gestisci l'esecuzione della traccia utilizzando i pulsanti della barra degli strumenti:
- Il verde Inizio Il pulsante inizia ad acquisire gli eventi in base alla configurazione.
- Clicchi Pausa per sospendere temporaneamente la raccolta dati senza perdere la connessione.
- Clicchi Fermare per terminare la traccia e chiudere la connessione.
Tramite le voci del menu:
Facendo clic con il tasto destro del mouse su una qualsiasi voce nella finestra di traccia:
La gestione del ciclo di vita delle tracce ha un impatto sulle risorse del server. Le tracce attive consumano memoria e potenza di elaborazione in modo proporzionale al volume di eventi acquisiti. È consigliabile sospendere le tracce durante i periodi in cui il monitoraggio non è necessario per ridurre il sovraccarico. Interrompere completamente le tracce al termine dell'analisi per liberare risorse.
Le tracce lato client richiedono una connessione Profiler attiva. Chiusura del SQL Server La finestra del Profiler interrompe immediatamente le tracce lato client. Riduci a icona la finestra del Profiler invece di chiuderla per continuare a eseguire le tracce mentre lavori in altre applicazioni.
5.2 Monitoraggio delle tracce in tempo reale
Monitora gli eventi acquisiti man mano che si verificano nella finestra di tracciamento principale. Ogni riga rappresenta un singolo evento, con le colonne che mostrano le proprietà dell'evento. La griglia si aggiorna continuamente durante le tracce attive, mostrando per impostazione predefinita gli eventi più recenti in basso.
Identificare modelli e problemi osservando la frequenza e le caratteristiche degli eventi. Eventi di lunga durata indicano problemi di prestazioni. Eventi di errore frequenti suggeriscono problemi applicativi. Attività di accesso insolite possono segnalare problemi di sicurezza. Il monitoraggio in tempo reale consente di rispondere immediatamente ai problemi emergenti.
Scorri gli eventi acquisiti per esaminare occorrenze specifiche. Fai clic su una riga qualsiasi per selezionare un evento e visualizzarne i dettagli completi. Fai doppio clic sugli eventi per aprire finestre di dialogo dettagliate delle proprietà che mostrano tutti i valori delle colonne. Utilizza la funzione Blocco scorrimento per impedire lo scorrimento automatico durante la revisione degli eventi storici.
5.3 Gestione di più tracce simultanee
L'esecuzione simultanea di più tracce offre flessibilità per scenari di monitoraggio complessi. È possibile creare tracce separate per diversi aspetti dell'attività del database, ad esempio una traccia per il monitoraggio delle prestazioni e un'altra per l'audit di sicurezza. Ogni traccia viene eseguita in modo indipendente con la propria configurazione.
L'allocazione delle risorse diventa critica con più tracce. Ogni traccia attiva consuma memoria, CPU e potenzialmente I/O su disco. Limitate il numero di tracce simultanee e assicuratevi che ogni traccia utilizzi filtri appropriati per ridurre al minimo il sovraccarico. Monitorate le prestazioni del server durante l'esecuzione di più tracce.
Coordinare i tempi di tracciamento per evitare sovrapposizioni di tracce ad alto overhead. Se possibile, eseguire le tracce ad alta intensità di risorse durante i periodi di bassa attività. Pianificare tracce diverse in momenti diversi anziché eseguirle tutte contemporaneamente.
5.4 Tracce lato client vs. tracce lato server
Per impostazione predefinita, una nuova traccia creata è una traccia lato client, che richiede una connessione attiva da SQL Server Profiler si connette al server di database. La traccia si interrompe immediatamente in caso di perdita della connessione o di chiusura di Profiler.
È anche possibile creare una traccia lato server, che viene eseguita interamente sul SQL Server istanza senza richiedere una connessione attiva al Profiler. La traccia lato server continua a essere eseguita anche dopo la chiusura SQL Server Profiler, scrittura dei dati nel percorso del file specificato.
Per creare una traccia lato server:
- Fare clic su File -> Nuova traccia …
- Nel Proprietà della traccia dialogo, controllo Salva su file
- Imposta il percorso del file e altre impostazioni.
- Consentire a tutti I processi del server tracciano i dati per creare una traccia lato server.
Le implicazioni sulle prestazioni variano significativamente a seconda del tipo di traccia. Le tracce lato client devono trasmettere i dati tramite la rete all'interfaccia Profiler, aggiungendo latenza e consumo di larghezza di banda. Le tracce lato server introducono un overhead minore perché i dati vengono scritti direttamente sul disco del server.
Utilizzate le tracce lato client per la risoluzione di problemi ad hoc, sessioni diagnostiche rapide e situazioni in cui un feedback visivo immediato è utile. Scegliete le tracce lato server per il monitoraggio della produzione, acquisizioni di lunga durata e scenari che richiedono un funzionamento non presidiato.
6. Analisi SQL Server Dati del profiler
6.1 Apertura e revisione delle tracce salvate
Caricare i file di traccia salvati seguendo questi passaggi:
- Lancio SQL Server Profilatore.
- Clicchi Compila il -> Apri -> File di traccia.
- Passare alla posizione del file di traccia.
- Seleziona il file .trc e clicca Apri.
- I dati di traccia vengono caricati nella finestra principale.
Caricare le tabelle di tracciamento seguendo questo processo:
- Clicchi Compila il -> Apri -> Tabella delle tracce.
- Connettiti al server che ospita la tabella di traccia.
- Selezionare il database dal Banca Dati cadere in picchiata.
- Scegli la tabella dal Table cadere in picchiata.
- Clicchi OK per caricare i dati.
6.2 Filtraggio e ricerca dei dati di traccia
6.2.1 Filtraggio post-acquisizione
Applicare i filtri ai dati di traccia caricati seguendo questi passaggi:
- Clicchi Modifica -> Trovate oppure premere Ctrl + F.
- Inserisci il testo da cercare nel Trova quello che campo.
- Seleziona la colonna da cui effettuare la ricerca Guarda dentro cadere in picchiata.
- Clicchi Trova successivo per individuare gli eventi corrispondenti.
Il filtraggio basato su colonne perfeziona i dati visualizzati senza riaffermare gli eventi. Fai clic con il pulsante destro del mouse su qualsiasi intestazione di colonna e seleziona le opzioni di filtro dal menu contestuale. Inserisci i criteri di filtro per visualizzare solo le righe corrispondenti. Questo approccio velocizza l'analisi nascondendo gli eventi irrilevanti.
6.2.2 Trovare eventi specifici
La funzionalità di ricerca aiuta a individuare eventi specifici in file di traccia di grandi dimensioni. Utilizza la finestra di dialogo Trova per cercare per contenuto di testo, tipo di evento o valore di colonna. Le espressioni regolari consentono modelli di ricerca complessi quando necessario.
Aggiungi ai segnalibri gli eventi importanti per una rapida consultazione durante l'analisi. Fai clic con il pulsante destro del mouse sugli eventi interessanti e seleziona le opzioni di segnalibro per contrassegnarli. Naviga tra i segnalibri utilizzando le scorciatoie da tastiera o i comandi del menu, facilitando il confronto tra eventi correlati.
6.3 Raggruppamento e aggregazione di eventi
Raggruppa gli eventi in base ai valori delle colonne per identificare modelli e riepilogare l'attività. Fai clic con il pulsante destro del mouse su qualsiasi intestazione di colonna e seleziona Raggruppa per questa colonna per organizzare gli eventi. Le visualizzazioni raggruppate comprimono insieme gli eventi simili, facilitando la visualizzazione degli schemi generali.
Le viste aggregate forniscono riepiloghi statistici dei dati di traccia. Raggruppa per TextData per vedere quante volte è stata eseguita ciascuna query. Raggruppa per LoginName per visualizzare riepiloghi delle attività per utente. L'aggregazione rivela schemi non immediatamente evidenti negli elenchi di eventi dettagliati.
Espandete e comprimete i gruppi per analizzare categorie specifiche. Fate clic sulle icone più e meno accanto alle intestazioni dei gruppi per mostrare o nascondere gli eventi raggruppati. Questa visualizzazione gerarchica facilita l'analisi dall'alto verso il basso, partendo da modelli di alto livello per poi approfondire i dettagli.
6.4 Estrazione di query SQL dalle tracce
Estrarre le query dai dati di traccia seguendo questi passaggi:
- Individuare la query di interesse nella griglia di traccia.
- Fare clic sulla riga per selezionare l'evento.
- Visualizza il testo completo della query nel pannello inferiore.
- Stampa Ctrl + A per selezionare tutto il testo della query.
- Stampa Ctrl + C per copiare il testo della query.
- Incollare la query in Management Studio per un'analisi più approfondita.
Identifica le query problematiche ordinandole in base alle colonne delle prestazioni. Fai clic sull'intestazione della colonna Durata per ordinare in base al tempo di esecuzione. Le query più lente vengono visualizzate in alto o in basso a seconda della direzione di ordinamento. Allo stesso modo, ordina per CPU, Letture o Scritture per identificare le operazioni che richiedono molte risorse.
Esporta le query per i test copiandole dalla traccia alle finestre delle query. Modifica le query estratte per testare le strategie di ottimizzazione. Confronta i piani di esecuzione e le metriche delle prestazioni tra le versioni originali e quelle ottimizzate.
6.5 Correlazione degli eventi e comprensione del flusso di esecuzione
Le relazioni tra eventi padre e figlio mostrano le gerarchie di esecuzione. Gli eventi SQL:BatchStarting sono il genitore degli eventi SQL:StmtStarting, che a loro volta sono il genitore degli eventi di esecuzione delle procedure. Comprendere queste relazioni aiuta a tracciare i percorsi di esecuzione completi all'interno del codice.
Il monitoraggio delle transazioni collega eventi correlati nel tempo. Utilizza la colonna SPID per raggruppare gli eventi per sessione. All'interno di una sessione, gli eventi si verificano in ordine cronologico, mostrando la sequenza delle operazioni. Questa visualizzazione mostra come le diverse operazioni interagiscono all'interno delle transazioni.
Correlare gli eventi esaminando i valori delle colonne condivise. Eventi con SPID identico si sono verificati nella stessa sessione. Eventi con lo stesso ApplicationName provenivano dalla stessa applicazione. Utilizzare queste correlazioni per comprendere scenari di esecuzione complessi.
7. comune SQL Server Casi d'uso del profiler
7.1 Risoluzione dei problemi relativi alle prestazioni
7.1.1 Identificazione delle query lente
Cattura le query lente utilizzando la seguente configurazione:
- Crea una nuova traccia utilizzando il TSQL modello.
- Nel Selezione Eventi scheda, verifica SQL:BatchCompleted and RPC: Completato sono selezionati.
- Clicchi Filtri a colonna.
- Seleziona Durata dall'elenco delle colonne.
- Inserisci 1000000 nel Maggiore o uguale campo per catturare le query che richiedono più di 1 secondo.
- Clicchi OK e avviare la traccia.
- Eseguire la traccia durante i periodi di picco di utilizzo.
- Interrompere la traccia e ordinare per Durata per identificare le query più lente.
L'analisi basata sulla durata rivela modelli di tempo di esecuzione. Ordina gli eventi acquisiti in base alla colonna Durata per visualizzare prima le operazioni più lunghe. Esamina la colonna TextData per questi eventi per identificare le query effettivamente responsabili dei ritardi.
Le query che richiedono un utilizzo intensivo di CPU e I/O richiedono approcci di ottimizzazione diversi. Ordina per colonna CPU per trovare query legate al processore che necessitano di miglioramenti algoritmici. Ordina per colonna Letture o Scritture per identificare query legate all'I/O che traggono vantaggio dall'indicizzazione o dalla riscrittura delle query.
7.1.2 Rilevamento di blocchi e deadlock
Configurare il rilevamento dei blocchi seguendo questi passaggi:
- Crea una nuova traccia.
- Nel Selezione Eventi scheda, espandere Serrature.
- Seleziona Blocco:Stallo and Blocco: Catena di sicurezza.
- Espandere Errori e avvisi.
- Seleziona Segnalazione di processo bloccato.
- Includi colonne: AIDS, Dati di testo, Nome del database, Nome di accesso.
- Avvia la traccia e monitora gli eventi di blocco.
Il monitoraggio degli eventi di blocco rivela problemi di concorrenza che incidono sulle prestazioni dell'applicazione. Gli eventi di blocco: deadlock indicano quando SQL Server situazioni di deadlock rilevate e risolte. Gli eventi Lock:Deadlock Chain mostrano i processi coinvolti nei deadlock.
I grafici di deadlock forniscono rappresentazioni visive degli scenari di deadlock. Quando si verifica un evento di deadlock, la colonna TextData contiene il codice XML che descrive il deadlock. Copia questo codice XML e aprilo in SQL Server Management Studio per visualizzare il diagramma grafico di stallo che mostra quali processi si sono bloccati a vicenda.
7.1.3 Trovare gli indici mancanti
Acquisisci il carico di lavoro per l'analisi dell'indice seguendo questi passaggi:
- Crea una nuova traccia utilizzando il Mappatura ECU modello.
- Configurare la traccia per salvarla in un file.
- Eseguire la traccia durante periodi di carico di lavoro rappresentativi.
- Raccogliere almeno diverse ore di attività.
- Interrompere la traccia e salvare il file.
- Avvia Database Engine Tuning Advisor.
- Selezionare il file di traccia come origine del carico di lavoro.
- Esegui l'analisi per ricevere consigli sull'indice.
L'integrazione con Database Engine Tuning Advisor automatizza la raccomandazione degli indici. Tuning Advisor analizza il carico di lavoro rilevato e suggerisce gli indici che migliorerebbero le prestazioni. Esamina attentamente i suggerimenti prima dell'implementazione, tenendo conto dell'overhead di archiviazione e dei costi di manutenzione.
7.2 Risoluzione dei problemi dell'applicazione
7.2.1 Debug degli errori dell'applicazione
Tieni traccia degli errori dell'applicazione utilizzando questa configurazione:
- Crea una nuova traccia.
- Espandere Errori e avvisi nella scheda Selezione eventi.
- Seleziona Eccezione, Messaggio di errore dell'utentee Attenzione.
- Includi colonne: Errore, Dati di testo, Nome dell'applicazione, AIDS.
- Filtra per Nome dell'applicazione per concentrarti sulla tua candidatura.
- Avvia la traccia e riproduci lo scenario di errore.
- Esamina gli eventi di errore registrati per ottenere informazioni diagnostiche.
Il monitoraggio degli errori rivela dettagli sulle eccezioni spesso nascosti alle applicazioni. La colonna Errore contiene SQL Server Numeri di errore. La colonna TextData mostra i messaggi di errore e la query che ha causato l'errore. La colonna Gravità indica i livelli di gravità dell'errore.
Il monitoraggio delle eccezioni rileva i problemi di runtime, tra cui violazioni di vincoli, errori di autorizzazione ed eventi di timeout. È possibile correlare gli eventi di errore con gli eventi di query precedenti per comprendere cosa ha attivato le eccezioni.
7.2.2 Tracciamento della comunicazione tra applicazione e database
Monitorare l'attività dell'applicazione seguendo questi passaggi:
- Crea una nuova traccia utilizzando il Standard modello.
- Clicchi Filtri a colonna.
- Seleziona Nome dell'applicazione e inserisci il nome della tua applicazione nel Come campo.
- Facoltativamente filtra per Nome host per isolare server specifici.
- Avviare la traccia durante le operazioni dell'applicazione.
- Esaminare gli eventi acquisiti per visualizzare tutte le interazioni con il database.
Il filtraggio dei nomi delle applicazioni isola le query provenienti da applicazioni specifiche. SQL Server Imposta il nome dell'applicazione dalle stringhe di connessione, semplificando il tracciamento delle singole applicazioni in ambienti multi-applicazione. Verifica che la stringa di connessione includa il parametro Nome applicazione per un filtraggio efficace.
Il monitoraggio delle connessioni mostra il ciclo di vita della sessione, inclusi gli eventi di accesso, esecuzione delle query e disconnessione. Monitora la frequenza di creazione delle connessioni per identificare problemi di pooling delle connessioni. Un tasso di abbandono eccessivo delle connessioni indica potenziali problemi di configurazione dell'applicazione.
7.2.3 Validazione del comportamento dell'applicazione
Verificare il comportamento previsto dell'applicazione utilizzando l'analisi delle tracce. Acquisire tutte le operazioni del database durante una transazione aziendale e verificare che le query corrette vengano eseguite nella sequenza corretta. Confrontare le query effettivamente acquisite con il comportamento previsto per identificare eventuali discrepanze.
La convalida dei parametri garantisce che le applicazioni trasmettano valori corretti alle stored procedure e alle query parametrizzate. Esaminare il testo della query acquisita per verificare che i valori dei parametri corrispondano alle aspettative. Parametri errati causano spesso errori logici che si traducono in risultati aziendali errati.
7.3 Audit di sicurezza
7.3.1 Monitoraggio dei tentativi di accesso
Configurare il monitoraggio degli accessi seguendo questi passaggi:
- Crea una nuova traccia.
- Espandere Security Audit nella scheda Selezione eventi.
- Seleziona Accesso di controllo, Disconnessione dall'audite Accesso di controllo non riuscito.
- Includi colonne: Nome di accesso, Nome host, Nome dell'applicazione, Orario di inizio.
- Avvia la traccia per monitorare l'attività di autenticazione.
- Esaminare gli eventi di accesso non riusciti per individuare potenziali problemi di sicurezza.
Gli accessi riusciti e non riusciti forniscono un monitoraggio completo dell'autenticazione. Gli eventi di Audit Login registrano i tentativi di autenticazione riusciti con informazioni sull'identità dell'utente e sulla fonte. Gli eventi di Audit Login Failed indicano i tentativi di accesso non riusciti che potrebbero indicare attacchi o problemi di configurazione.
Il monitoraggio dell'autenticazione rivela modelli nell'accesso al database. Monitora la frequenza di accesso per rilevare attività insolite. Diversi tentativi di accesso falliti seguiti da un accesso riuscito potrebbero indicare credenziali compromesse. Gli accessi falliti da posizioni inaspettate richiedono un'indagine.
7.3.2 Monitoraggio dell'accesso ai dati e delle modifiche
Monitorare l'accesso ai dati utilizzando questa configurazione:
- Crea una nuova traccia.
- Espandere Security Audit.
- Seleziona Controlla l'accesso agli oggetti del database.
- Includi colonne: ObjectName, Nome di accesso, Dati di testo, Nome del database.
- Filtra per ObjectName per monitorare tabelle sensibili specifiche.
- Avvia la traccia per acquisire i tentativi di accesso.
Il monitoraggio di SELECT, INSERT, UPDATE e DELETE fornisce un controllo completo delle modifiche ai dati. Cattura gli eventi SQL:BatchCompleted con filtri appropriati per monitorare tutte le operazioni di accesso ai dati. Filtra per ObjectName o TextData per concentrarti sulle tabelle sensibili.
L'accesso ai dati sensibili richiede un attento monitoraggio per garantire la conformità alle policy di sicurezza. Creare tracce specifiche per le tabelle contenenti informazioni personali, dati finanziari o altre informazioni riservate. Rivedere regolarmente i modelli di accesso per identificare accessi ai dati non appropriati.
Rileva attività sospette analizzando i modelli di query nelle tracce acquisite. Cerca query insolite che non corrispondono al normale comportamento dell'applicazione. Le istruzioni SELECT senza clausola WHERE che recuperano intere tabelle possono indicare tentativi di esfiltrazione dei dati.
I tentativi di escalation dei privilegi vengono visualizzati come errori di autorizzazione o tentativi di eseguire comandi amministrativi. Monitora le query che tentano di accedere alle tabelle di sistema, modificare la configurazione del server o creare account privilegiati. Filtra gli eventi di errore e controlla la colonna TextData per individuare attività sospette.
7.4 Pianificazione della capacità e analisi del carico di lavoro
Stabilisci linee di base registrando carichi di lavoro rappresentativi durante le normali operazioni. Esegui le analisi durante il normale orario di lavoro per comprendere i modelli di attività standard. Salva queste analisi come linee di base delle prestazioni per confronti futuri.
L'identificazione dei picchi di utilizzo rivela quando il sistema raggiunge il carico massimo. Cattura le tracce in diversi periodi di tempo, inclusi orari di lavoro, finestre di elaborazione batch e attività fuori orario. Analizza il conteggio degli eventi e il consumo di risorse per identificare i periodi di picco.
I modelli di utilizzo delle risorse emergono dall'analisi del carico di lavoro. Raggruppa gli eventi per intervalli di tempo per visualizzare la distribuzione delle attività durante il giorno. Calcola le metriche aggregate di CPU, I/O su disco e durata per quantificare il consumo di risorse. Utilizza questi dati per pianificare aggiornamenti di capacità o identificare opportunità di ottimizzazione.
8. Avanzate SQL Server Tecniche di profilazione
8.1 Creazione di tracce lato server con T-SQL
8.1.1 Utilizzo di sp_trace_create e procedure correlate
Crea tracce lato server a livello di programmazione utilizzando le stored procedure T-SQL. Questo approccio consente la creazione e la gestione automatizzate delle tracce senza richiedere SQL Server Interfaccia grafica di Profiler.
Definisci una traccia lato server utilizzando questo codice di esempio:
- Dichiara le variabili per l'ID traccia e il percorso del file.
- Chiamare sp_trace_create per creare una nuova traccia.
- Utilizzare sp_trace_setevent per aggiungere eventi e colonne.
- Facoltativamente, utilizzare sp_trace_setfilter per configurare i filtri.
- Chiama sp_trace_setstatus per avviare la traccia.
La procedura sp_trace_create inizializza una nuova definizione di traccia. Specifica il percorso del file di output, la dimensione massima del file e le opzioni di rollover. La procedura restituisce un ID di traccia utilizzato nelle chiamate di procedura successive per configurare la traccia.
Aggiungere eventi utilizzando la procedura sp_trace_setevent. Specificare l'ID traccia, l'ID evento e l'ID colonna per ogni combinazione evento-colonna che si desidera acquisire. Richiamare questa procedura più volte per creare configurazioni di traccia complete.
Configurare i filtri con la procedura sp_trace_setfilter. Specificare l'ID di traccia, l'ID di colonna, l'operatore logico, l'operatore di confronto e il valore del filtro. Più chiamate di filtro si combinano per creare criteri di filtro complessi.
Avviare la traccia chiamando sp_trace_setstatus con valore di stato 1. Interrompere le tracce chiamando la stessa procedura con valore di stato 0. Eliminare le definizioni di traccia chiamando con valore di stato 2.
8.1.2 Vantaggi delle tracce lato server
Il ridotto overhead del client rende le tracce lato server ideali per il monitoraggio della produzione. Il server del database gestisce tutte le operazioni di tracciamento senza consumare risorse della macchina client. La larghezza di banda della rete non viene consumata per la trasmissione di eventi a un'applicazione client.
L'esecuzione automatica consente la raccolta di tracce senza intervento dell'utente. Le tracce lato server continuano a essere eseguite dopo la creazione, anche se non esiste alcuna connessione client. Pianifica la creazione delle tracce tramite SQL Server Lavori di agente per il monitoraggio automatizzato.
L'elaborazione lato server riduce l'impatto sulle prestazioni. Gli eventi vengono scritti direttamente su disco senza serializzazione o trasmissione di rete aggiuntive. La gestione del buffer ottimizza l'I/O su disco per prestazioni complessive migliori.
8.2 Funzionalità di riproduzione della traccia
8.2.1 Cattura delle tracce per la riproduzione
Crea tracce pronte per la riproduzione seguendo questi passaggi:
- Crea una nuova traccia utilizzando il TSQL_Replay modello.
- Verificare che tutti gli eventi e le colonne richiesti siano selezionati.
- Configurare la traccia per salvarla in un file.
- Eseguire la traccia durante il periodo di carico di lavoro che si desidera acquisire.
- Interrompere la traccia e salvare il file.
Gli eventi e le colonne obbligatori garantiscono una riproduzione completa della traccia. Il modello TSQL_Replay include tutti i tipi di evento e le colonne dati necessari. La mancanza di elementi obbligatori impedisce la riproduzione corretta, quindi utilizzare sempre questo modello quando si acquisiscono dati per scopi di riproduzione.
8.2.2 Riproduzione delle tracce
Riproduci i carichi di lavoro acquisiti seguendo questi passaggi:
- In SQL Server Profiler, clicca Compila il -> Apri -> File di traccia.
- Selezionare il file di traccia pronto per la riproduzione.
- Clicchi Replay -> Inizio.
- Connettiti al server di destinazione nella finestra di dialogo di riproduzione.
- Configura le opzioni di riproduzione, tra cui l'ordine e la tempistica della riproduzione.
- Clicchi OK per iniziare la riproduzione.
- Monitora l'avanzamento della riproduzione nella finestra di stato.
Le opzioni di configurazione della riproduzione controllano come SQL Server Profiler riproduce il carico di lavoro acquisito. Riproduce gli eventi nell'ordine in cui sono stati acquisiti per mantenere le relazioni temporali. Configura se mantenere la temporizzazione originale o riprodurre gli eventi il più velocemente possibile.
8.2.3 Casi d'uso per la riproduzione delle tracce
I test di carico traggono vantaggio dalla riproduzione delle tracce, riproducendo carichi di lavoro realistici. È possibile acquisire le tracce dei carichi di lavoro di produzione e riprodurle sui sistemi di test per convalidare le prestazioni in base a modelli di utilizzo reali. È possibile regolare le impostazioni di concorrenza per simulare diversi livelli di carico.
La convalida della migrazione dell'ambiente garantisce che i nuovi sistemi possano gestire i carichi di lavoro esistenti. Acquisisci tracce dai sistemi di produzione attuali e riproducile su hardware nuovo o aggiornato. SQL Server versioni. Confronta le metriche delle prestazioni per verificare che le migrazioni non ne compromettano le prestazioni.
Gli scenari di test includono test di regressione dopo le modifiche al codice, convalida delle modifiche dell'ottimizzatore attraverso SQL Server versioni e configurazioni hardware per test di stress. Replay fornisce carichi di lavoro coerenti e ripetibili per test affidabili.
8.3 Integrazione di SQL Profiler con Database Engine Tuning Advisor
Crea file di carico di lavoro per Database Engine Tuning Advisor acquisendo tracce con eventi appropriati. Utilizza il modello di Tuning per garantire che tutte le informazioni necessarie per l'analisi vengano acquisite.
Avvia Database Engine Tuning Advisor e seleziona il file di traccia come origine del carico di lavoro. L'advisor analizza le query acquisite e consiglia indici, viste indicizzate o strategie di partizionamento che potrebbero migliorare le prestazioni.
Il flusso di lavoro per l'ottimizzazione delle prestazioni integra l'acquisizione delle tracce con l'analisi di ottimizzazione. Acquisisci carichi di lavoro rappresentativi durante le normali operazioni, analizzali con Tuning Advisor, esamina le raccomandazioni, testa le modifiche suggerite in fase di sviluppo e infine implementa le modifiche approvate in produzione.
8.4 Automazione della raccolta delle tracce
Pianifica le tracce utilizzando SQL Server Job degli agenti per la raccolta automatica dei dati. Crea script T-SQL che definiscono tracce lato server utilizzando le procedure sp_trace. Pianifica l'esecuzione di questi script a orari o intervalli specifici.
L'automazione di PowerShell consente scenari di gestione delle tracce sofisticati. Scrivi script di PowerShell che creano tracce, ne monitorano lo stato ed elaborano i dati raccolti. Pianifica gli script di PowerShell tramite Utilità di pianificazione o SQL Server Agente.
SQL Server I job dell'agente garantiscono un'esecuzione programmata affidabile. Crea job che avviano le tracce all'inizio dei periodi di monitoraggio e le interrompono al termine della raccolta dati. Configura le notifiche dei job per avvisare gli amministratori in caso di errori.
8.5 Analisi delle tracce a livello di programmazione
Leggi i file di traccia con T-SQL utilizzando la funzione fn_trace_gettable. Questa funzione con valori di tabella analizza i file di traccia e restituisce i dati degli eventi come set di risultati. Interroga questi dati utilizzando T-SQL standard per eseguire analisi personalizzate.
Gli script di analisi personalizzati consentono l'elaborazione automatizzata delle tracce. È possibile scrivere query che calcolino statistiche aggregate, identifichino pattern o segnalino anomalie. È possibile pianificare l'esecuzione automatica di questi script al termine della raccolta delle tracce.
Genera report interrogando i dati di traccia archiviati nelle tabelle. Crea viste che aggregano gli eventi per periodo di tempo, utente o applicazione. Sviluppa soluzioni di reporting che forniscono informazioni regolari sull'attività e le prestazioni del database.
9. SQL Server Le migliori pratiche del profiler
9.1 Migliori pratiche di prestazione
9.1.1 Riduzione al minimo del sovraccarico di traccia
Selezionare solo gli eventi necessari per ridurre il sovraccarico di tracciamento. Ogni tipo di evento aggiuntivo aumenta la quantità di dati che il motore di tracciamento deve elaborare. Rivedere gli obiettivi di monitoraggio e includere solo gli eventi direttamente rilevanti per tali obiettivi.
Utilizza i filtri in modo efficace per evitare di acquisire dati irrilevanti. Filtra per NomeDatabase per escludere i database di sistema. Filtra per Durata per acquisire solo le query lente. Filtra per NomeApplicazione per concentrarti su applicazioni specifiche. Un filtro appropriato riduce drasticamente il sovraccarico di tracciamento.
Le considerazioni lato server e lato client influiscono sull'impatto sulle prestazioni. Le tracce lato server scrivono i dati direttamente su disco con un overhead minimo. Le tracce lato client trasmettono gli eventi tramite la rete all'interfaccia Profiler, aggiungendo latenza e consumo di larghezza di banda. Utilizzare le tracce lato server per il monitoraggio della produzione.
9.1.2 Ottimizzazione dell'archiviazione delle tracce
La gestione delle dimensioni dei file previene l'esaurimento dello spazio su disco. Imposta limiti massimi per le dimensioni dei file in base allo spazio di archiviazione disponibile. Abilita il rollover dei file per creare più file anziché aumentare le dimensioni di un singolo file all'infinito. Monitora lo spazio su disco durante l'esecuzione della traccia.
L'archiviazione di tabelle e file comporta diversi compromessi in termini di prestazioni. L'archiviazione di file offre prestazioni migliori durante l'esecuzione della traccia perché bypassa il motore di archiviazione. L'archiviazione di tabelle consente query T-SQL sui dati di traccia, ma aggiunge un overhead di scrittura. Scegli il tipo di archiviazione in base alle tue esigenze di analisi.
9.2 Migliori pratiche di sicurezza
La gestione delle autorizzazioni controlla chi può creare ed eseguire tracce. Concedi l'autorizzazione ALTER TRACE solo agli utenti attendibili che necessitano di funzionalità di traccia. I membri del ruolo di amministratore di sistema hanno accesso illimitato alle tracce. Rivedi e controlla regolarmente le autorizzazioni di traccia.
La protezione dei dati sensibili richiede un'attenta configurazione delle tracce. Evitare di acquisire il testo completo delle query quando si lavora con dati sensibili. Valutare la possibilità di filtrare o crittografare l'output delle tracce contenente informazioni riservate. Conservare i file di traccia in posizioni sicure con controlli di accesso adeguati.
La sicurezza dei file di traccia impedisce l'accesso non autorizzato ai dati acquisiti. Imposta le autorizzazioni per limitare l'accesso ai file di traccia. Crittografa i file di traccia se contengono informazioni sensibili. Elimina i file di traccia al termine dell'analisi per ridurre al minimo il rischio di esposizione.
9.3 Considerazioni sull'ambiente di produzione
9.3.1 Quando utilizzare Profiler in produzione
La valutazione del rischio determina quando SQL Server Profiler è adatto all'uso in produzione. Profiler introduce un overhead misurabile che aumenta con l'ambito della traccia. Valutare se il valore diagnostico giustifica l'impatto sulle prestazioni prima di eseguire tracce in produzione.
Le configurazioni a impatto minimo consentono un tracciamento della produzione più sicuro. Utilizza filtri altamente selettivi per catturare solo gli eventi critici. Imposta soglie di durata per ignorare le query a esecuzione rapida. Limita la durata del tracciamento a brevi periodi durante le sessioni di risoluzione dei problemi. Configura i tracciamenti lato server per ridurre il sovraccarico del client.
9.3.2 Alternative per il monitoraggio della produzione
Gli eventi estesi garantiscono un overhead inferiore per il monitoraggio della produzione. Questa moderna tecnologia offre prestazioni e flessibilità migliori rispetto a SQL Server Profiler. Migrazione delle soluzioni di monitoraggio verso Extended Events per un utilizzo produttivo a lungo termine.
Query Store acquisisce automaticamente i dati sulle prestazioni delle query senza necessità di configurazione manuale della traccia. Abilita Query Store sui database di produzione per monitorare le statistiche di esecuzione delle query nel tempo. Query Store offre la maggior parte delle funzionalità di monitoraggio delle prestazioni senza il sovraccarico della traccia.
Le viste di gestione dinamica offrono un monitoraggio semplificato per scenari specifici. Le DMV forniscono informazioni sullo stato attuale senza acquisire eventi storici. È possibile interrogare periodicamente le DMV per monitorare lo stato del server senza il sovraccarico di un tracciamento continuo.
9.4 Migliori pratiche per la gestione delle tracce
Le convenzioni di denominazione garantiscono che i file di traccia siano identificabili e organizzati. Includere data, ora, nome del server e scopo nei nomi dei file di traccia. Utilizzare schemi di denominazione coerenti in tutte le tracce per facilitare la gestione e l'analisi.
La documentazione registra la configurazione e lo scopo della traccia. Documenta quali eventi hai acquisito, perché hai creato la traccia e cosa hai imparato dall'analisi. Mantieni un registro delle tracce eseguite sui sistemi di produzione per scopi di conformità e risoluzione dei problemi.
I criteri di conservazione impediscono l'accumulo eccessivo di file di traccia. Definisci per quanto tempo conservare i file di traccia in base ai requisiti aziendali e alla capacità di archiviazione. Automatizza l'eliminazione dei vecchi file di traccia per liberare spazio su disco. Archivia le tracce importanti in un archivio a lungo termine prima dell'eliminazione.
9.5 Errori comuni da evitare
Un tracciamento eccessivo causa un sovraccarico prestazionale e genera volumi di dati ingestibili. Evitate di acquisire tutti gli eventi senza filtri. Iniziate con tracce circoscritte e mirate ed espandete l'ambito solo quando necessario. Una maggiore quantità di dati non è sempre sinonimo di una risoluzione dei problemi più efficace.
Dimenticare di interrompere le tracce spreca risorse e occupa spazio su disco. Interrompere sempre le tracce al termine del monitoraggio. Impostare limiti di durata delle tracce o dimensioni massime dei file per evitare che le tracce vengano eseguite in modo incontrollato. Monitorare regolarmente le tracce in esecuzione e interrompere quelle inattive o non necessarie.
Ignorare l'ottimizzazione dei filtri porta a prestazioni scadenti e analisi complesse. Investi tempo nella configurazione di filtri efficaci prima di iniziare le tracce. Testa i filtri negli ambienti di sviluppo per verificare che acquisiscano i dati attesi. Rivedi e perfeziona i filtri in base ai risultati ottenuti.
10. Alternative a SQL Server Profiler nel 2025
10.1 Eventi estesi: la sostituzione moderna
10.1.1 Cosa sono gli eventi estesi
Gli eventi estesi rappresentano SQL Servermoderna architettura di gestione degli eventi. Microsoft ha progettato questo sistema specificamente per affrontare SQL Server Limitazioni del Profiler, tra cui sovraccarico di prestazioni e flessibilità di configurazione. Extended Events offre funzionalità di monitoraggio complete con un consumo di risorse significativamente inferiore.
L'architettura e i vantaggi distinguono gli eventi estesi dalle vecchie tecnologie di tracciamento. Il motore degli eventi si integra profondamente in SQL ServerL'architettura di base consente di acquisire eventi con un sovraccarico minimo. Il buffering asincrono degli eventi impedisce che il monitoraggio blocchi le operazioni del database. Le opzioni di targeting flessibili consentono diverse configurazioni di output.
I vantaggi in termini di prestazioni rendono Extended Events ideale per il monitoraggio della produzione. I benchmark mostrano che Extended Events introduce un overhead inferiore del 50-90% rispetto a soluzioni equivalenti. SQL Server Tracce del profiler. L'architettura è più scalabile con volumi di eventi elevati e supporta più sessioni di monitoraggio simultanee.
10.1.2 Migrazione da Profiler a Extended Events
La mappatura degli eventi si traduce SQL Server Eventi del Profiler e loro equivalenti negli Eventi estesi. La maggior parte degli eventi del Profiler ha un corrispettivo negli Eventi estesi. Microsoft fornisce la documentazione che mappa gli eventi comuni tra i due sistemi.
La creazione di sessioni in Extended Events richiede l'apprendimento di nuovi concetti e sintassi. Definire le sessioni di eventi utilizzando le istruzioni T-SQL CREATE EVENT SESSION o l'interfaccia grafica di Extended Events in Management Studio. Le sessioni specificano quali eventi acquisire, quali dati raccogliere e dove archiviare i risultati.
10.1.3 Strumenti e interfacce per eventi estesi
L'interfaccia utente di SSMS Extended Events offre la gestione grafica delle sessioni. È possibile accedere a Extended Events tramite la cartella Gestione in Esplora oggetti. È possibile creare, modificare e monitorare le sessioni di eventi tramite l'interfaccia. È possibile visualizzare i dati acquisiti in formati grafici, inclusi griglie e grafici.
La gestione delle sessioni T-SQL consente il controllo programmatico degli eventi estesi. Scrivere istruzioni CREATE EVENT SESSION per definire le sessioni nel codice. Utilizzare ALTER EVENT SESSION per modificare le sessioni in esecuzione. Eliminare le sessioni con DROP EVENT SESSION. Questo approccio facilita le soluzioni di monitoraggio automatizzate.
10.2 SQL Server QueryStore
Query Store acquisisce automaticamente i dati sulle prestazioni delle query per i database in cui è abilitato. Questa funzionalità tiene traccia dei piani di query, delle statistiche di esecuzione e delle metriche delle prestazioni nel tempo, senza dover configurare manualmente il tracciamento. Query Store conserva i dati storici, consentendo l'analisi delle tendenze e il rilevamento delle regressioni.
Il monitoraggio delle prestazioni delle query in tempo reale tramite Query Store rivela il comportamento attuale del sistema. È possibile visualizzare le query eseguite di recente, i relativi piani di esecuzione e il consumo di risorse. È possibile identificare query con durata crescente o piani di esecuzione variabili che potrebbero indicare problemi.
L'analisi delle query storiche consente il confronto tra diversi periodi di tempo. Query Store conserva i dati sulle prestazioni per periodi di conservazione configurabili. Confronta le prestazioni attuali con le baseline storiche per identificare regressioni. Analizza i trend delle prestazioni per prevedere le future esigenze di capacità.
Utilizza Query Store quando hai bisogno di un monitoraggio automatico e continuo delle prestazioni. Abilita Query Store sui database di produzione per monitorare costantemente il comportamento delle query. Query Store integra la risoluzione dei problemi basata su trace fornendo un contesto storico per i problemi di prestazioni.
10.3 Viste di gestione dinamica (DMV)
Il monitoraggio leggero tramite DMV fornisce informazioni sullo stato attuale senza catturare eventi storici. I DMV espongono dati interni SQL Server statistiche e metadati tramite viste interrogabili. Interroga i DMV utilizzando le istruzioni SELECT T-SQL standard.
Le query DMV più comuni per il monitoraggio delle prestazioni includono sys.dm_exec_query_stats per le statistiche sulle prestazioni delle query, sys.dm_exec_requests per le richieste in esecuzione e sys.dm_os_wait_stats per le statistiche di attesa. Queste viste forniscono informazioni puntuali sullo stato e l'attività del server.
I DMV integrano il monitoraggio basato su tracce fornendo metriche in tempo reale. Utilizzate i DMV per rapidi controlli di integrità e analisi dello stato attuale. Combinate le query DMV con i dati di traccia per approcci completi alla risoluzione dei problemi.
10.4 Strumenti di monitoraggio di terze parti
Le alternative commerciali offrono capacità di monitoraggio avanzate oltre SQL ServerStrumenti integrati. Prodotti di fornitori come SolarWinds, Redgate e Quest offrono funzionalità complete di monitoraggio, avviso e analisi. Questi strumenti spesso combinano più fonti di dati, tra cui tracce, DMV e contatori delle prestazioni.
Il confronto delle funzionalità rivela i punti di forza dei diversi approcci di monitoraggio. Gli strumenti di terze parti offrono interfacce utente superiori, avvisi automatici e trend storici. SQL ServerGli strumenti integrati non comportano costi aggiuntivi e offrono una maggiore integrazione. Valuta gli strumenti in base alle tue esigenze specifiche e al tuo budget.
10.5 Scegliere lo strumento giusto per le tue esigenze
Una matrice decisionale aiuta a selezionare gli strumenti di monitoraggio appropriati. Per la risoluzione dei problemi ad hoc, SQL Server Profiler rimane accessibile ed efficace. Per il monitoraggio della produzione, Extended Events o Query Store offrono prestazioni migliori. Per un monitoraggio aziendale completo, le soluzioni di terze parti offrono il maggior numero di funzionalità.
I criteri di selezione degli strumenti includono il sovraccarico di prestazioni, la facilità d'uso, i requisiti di conservazione dei dati e i vincoli di budget. Considerate l'esperienza del vostro team nella scelta degli strumenti. Gli strumenti più familiari consentono una risoluzione dei problemi più rapida, anche se le alternative più recenti offrono funzionalità migliori.
Combina più strumenti per strategie di monitoraggio complete. Utilizza Query Store per il monitoraggio continuo delle prestazioni, Extended Events per l'indagine su problemi specifici e DMV per controlli di integrità in tempo reale. Questo approccio a più livelli offre un monitoraggio affidabile senza eccessivi costi aggiuntivi.
11. Risoluzione Dei Problemi SQL Server Problemi con il profiler
11.1 Problemi di connessione comuni
Gli errori di autenticazione impediscono SQL Server Profiler dalla connessione ai server di destinazione. Verifica di utilizzare le credenziali corrette per il metodo di autenticazione selezionato. L'autenticazione di Windows richiede che il tuo account Windows abbia le autorizzazioni appropriate. SQL Server permessi. SQL Server Per l'autenticazione sono necessarie credenziali di accesso SQL valide.
I problemi di connettività di rete si manifestano come errori di timeout o errori di connessione. Verifica SQL Server consente connessioni remote nella sua configurazione. Controllare le impostazioni del firewall per consentire il traffico su SQL ServerPorta di . Verificare la connettività di base utilizzando ping e telnet prima di risolvere i problemi specifici di Profiler.
11.2 Problemi di prestazioni con Profiler
Un'esecuzione lenta della traccia indica un sovraccarico eccessivo dovuto alla configurazione della traccia. Esaminare gli eventi selezionati ed eliminare quelli non necessari. Aggiungere filtri per ridurre il volume degli eventi acquisiti. Valutare l'utilizzo di tracce lato server per ridurre il carico di elaborazione lato client.
L'elevato consumo di risorse influisce su entrambi SQL Server e il client Profiler. Monitorare la CPU e la memoria del server durante l'esecuzione della traccia. Se le risorse del server sono limitate, aumentare la selettività del filtro o ridurre la durata dell'acquisizione. I problemi di risorse del client richiedono la chiusura di altre applicazioni o l'aggiornamento dell'hardware del client.
11.3 Problemi con i file di traccia e le tabelle
I file di traccia danneggiati impediscono l'apertura in SQL Server Profiler. La corruzione è in genere causata da una terminazione non corretta della traccia o da errori del disco. Prova ad aprire il file in un editor di testo per verificare che non sia completamente danneggiato. A volte è possibile recuperare dati parziali importandoli in una tabella tramite fn_trace_gettable.
Si verificano problemi di accesso alla tabella quando si tenta di caricare tracce da SQL Server tabelle. Verifica di avere l'autorizzazione SELECT sulla tabella di traccia. Controlla che la tabella non sia stata eliminata o rinominata. Assicurati di connetterti al server e al database corretti che contengono la tabella di traccia.
11.4 Eventi mancanti o dati incompleti
Una configurazione errata dei filtri può causare la mancata rilevazione di eventi attesi nelle tracce. Esamina attentamente i criteri di filtro per assicurarti che non escludano gli eventi desiderati. Testa i filtri eseguendo tracce brevi e verificando che i dati acquisiti corrispondano alle aspettative. Rimuovi temporaneamente i filtri per determinare se sono la causa del problema.
Il buffer overflow si verifica quando SQL Server Impossibile scrivere i dati di traccia abbastanza velocemente da tenere il passo con la generazione degli eventi. Questo accade in genere con tracce non filtrate durante un'attività intensa. I sintomi includono eventi mancanti o avvisi "Eventi non acquisiti". Risolvere aggiungendo filtri per ridurre il volume degli eventi o aumentando le prestazioni di I/O su disco della posizione del file di traccia.
11.5 Arresti anomali ed errori del profiler
I messaggi di errore più comuni includono "Impossibile creare la traccia", che indica problemi di autorizzazione o limitazioni di risorse. I messaggi "Traccia interrotta" suggeriscono errori di traccia lato server, probabilmente dovuti a condizioni di disco pieno. Gli errori "Definizione di traccia non valida" indicano problemi di configurazione.
Le strategie di risoluzione dipendono dall'errore specifico. Gli errori di autorizzazione richiedono la concessione del permesso ALTER TRACE all'utente. Gli errori di risorse richiedono la liberazione di spazio su disco o memoria. Gli errori di configurazione richiedono la revisione e la correzione delle impostazioni di traccia. Riavviare SQL Server Profiler se non risponde più.
12. pratico SQL Server Scenari ed esempi di profiler
12.1 Scenario 1: identificazione delle query più lente nel database
Questa procedura dettagliata illustra come acquisire e analizzare query lente.
Configurare la traccia seguendo questi passaggi:
- Lancio SQL Server Esegui il profiler e connettiti al server di destinazione.
- Clicchi Compila il -> Nuova traccia.
- Inserisci "Analisi delle query lente" nel Nome della traccia campo.
- Seleziona TSQL dal Usa il modello cadere in picchiata.
- Clicchi Selezione Eventi scheda.
- Clicchi Filtri a colonna.
- Seleziona Durata e inserisci 1000000 in Maggiore o uguale.
- Seleziona Nome del database e inserisci il nome del tuo database in Come.
- Clicchi OK per chiudere i filtri.
- Consentire a tutti Salva su file e specificare un percorso file.
- Clicchi Correre per iniziare a catturare.
Eseguire la traccia durante le ore di punta per almeno 30 minuti per acquisire un carico di lavoro rappresentativo. Interrompere la traccia dopo aver raccolto dati sufficienti.
Analizzare i risultati seguendo questo processo:
- Clicca su Durata intestazione di colonna per ordinare in base al tempo di esecuzione.
- Identifica le 10 query più longeve.
- Per ogni query, esaminare il Dati di testo colonna.
- Copiare il testo della query e incollarlo in Management Studio.
- Usa il Visualizza il piano di esecuzione stimato per analizzare la query.
- Cerca scansioni di tabelle, indici mancanti o join inefficienti.
- Review CPU, Leggee scrive colonne per modelli di consumo delle risorse.
12.2 Scenario 2: Debug di un problema di deadlock
Questo esempio mostra come catturare e analizzare i deadlock.
Configurare il monitoraggio dei deadlock seguendo questi passaggi:
- Creare una nuova traccia denominata "Deadlock Investigation".
- Clicchi Selezione Eventi scheda.
- Clicchi Mostra tutti gli eventi.
- Espandere Serrature categoria.
- Seleziona Blocco:Stallo.
- Seleziona Blocco: Catena di sicurezza.
- Espandere Errori e avvisi categoria.
- Seleziona Segnalazione di processo bloccato.
- Garantire Dati di testo la colonna è selezionata.
- Clicchi Correre per avviare il monitoraggio.
Quando si verifica un deadlock durante l'esecuzione della traccia, nella griglia della traccia viene visualizzato l'evento Lock:Deadlock.
Interpretare le informazioni sullo stallo seguendo questi passaggi:
- Clicca su Blocco:Stallo riga dell'evento.
- Guarda il Dati di testo colonna nel pannello inferiore.
- Copiare il contenuto XML da TextData.
- Aprire Management Studio e creare una nuova finestra di query.
- Incollare l'XML nella finestra di query.
- Salvare il file con estensione .xdl.
- Aprire il file .xdl in Management Studio per visualizzare il grafico del deadlock.
- Il grafico mostra i processi coinvolti, le risorse bloccate e la vittima scelta.
- Esaminare le query di entrambi i processi per comprendere il conflitto.
I passaggi di risoluzione in genere comportano il riordino delle operazioni nel codice dell'applicazione per accedere alle risorse in ordine coerente, riducendo l'ambito delle transazioni o implementando suggerimenti di blocco appropriati.
12.3 Scenario 3: monitoraggio di tutte le query da un'applicazione specifica
Questo scenario illustra il monitoraggio delle query specifiche dell'applicazione.
Configurare il tracciamento specifico dell'applicazione seguendo questi passaggi:
- Creare una nuova traccia denominata "Application Query Tracking".
- Seleziona il Standard modello.
- Clicchi Selezione Eventi scheda.
- Clicchi Filtri a colonna.
- Seleziona Nome dell'applicazione.
- Inserisci il nome della tua applicazione nel Come campo.
- Se l'applicazione utilizza il pool di connessioni, potrebbe essere necessario il confronto con caratteri jolly.
- Clicchi OK per applicare il filtro.
- Consentire a tutti Salva nella tabella per facilitare le interrogazioni.
- Clicchi Correre per iniziare a catturare.
L'analisi del modello di query rivela come la tua applicazione interagisce con SQL Server:
- Dopo aver raccolto i dati, interrompere la traccia.
- Aprire Management Studio e connettersi al server con la tabella di traccia.
- Interrogare la tabella delle tracce per analizzare i modelli.
- Conta le query per tipo per visualizzare il mix di operazioni.
- Identificare le query eseguite più frequentemente.
- Cerca query che potrebbero essere memorizzate nella cache o ottimizzate.
- Verificare la presenza di query identiche ripetute che indicano la mancanza di pool di connessioni.
12.4 Scenario 4: Verifica dell'accesso ai dati per la conformità
Questo esempio mostra la creazione di un audit trail di sicurezza.
Configurare l'audit di sicurezza seguendo questi passaggi:
- Creare una nuova traccia denominata "Security Audit Trail".
- Clicchi Selezione Eventi scheda.
- Clicchi Mostra tutti gli eventi.
- Espandere Security Audit categoria.
- Seleziona Accesso di controllo, Disconnessione dall'audit, Accesso di controllo non riuscito.
- Seleziona Controlla l'accesso agli oggetti del database.
- Espandere TSQL categoria.
- Seleziona SQL:BatchCompleted.
- Clicchi Filtri a colonna.
- Filtra per ObjectName per monitorare tabelle sensibili specifiche.
- Consentire a tutti Salva nella tabella per la conservazione a lungo termine.
- Abilita la traccia lato server per operazioni non presidiate.
- Clicchi Correre per iniziare l'audit.
Genera report di audit interrogando la tabella di traccia:
- Crea query che riepilogano l'accesso in base all'utente e al periodo di tempo.
- Identificare modalità di accesso insolite o attività fuori orario.
- Documentare i tentativi di accesso non riusciti per la verifica della sicurezza.
- Esportare i dati di audit nei sistemi di reporting per la documentazione di conformità.
- Archiviare le tracce di controllo completate in base ai criteri di conservazione.
12.5 Scenario 5: Acquisizione di un carico di lavoro per test delle prestazioni
Questo scenario illustra l'acquisizione del carico di lavoro a scopo di test.
Crea tracce pronte per la riproduzione seguendo questi passaggi:
- Creare una nuova traccia denominata "Acquisizione carico di lavoro".
- Seleziona TSQL_Replay dal menu a discesa dei modelli.
- Questo modello include tutti gli eventi e le colonne necessari per la riproduzione.
- Clicchi Selezione Eventi scheda.
- Applica filtri se vuoi catturare segmenti specifici del carico di lavoro.
- Consentire a tutti Salva su file.
- Specificare un percorso file con spazio su disco adeguato.
- Imposta limiti appropriati per le dimensioni dei file e abilita il rollover.
- Clicchi Correre per iniziare a catturare.
Acquisizione durante le operazioni aziendali rappresentative. Per un'acquisizione completa del carico di lavoro, eseguire la traccia per diverse ore, coprendo diversi modelli di attività. Interrompere la traccia dopo aver raccolto dati sufficienti.
L'analisi del carico di lavoro rivela modelli di comportamento del sistema:
- Aprire il file di traccia catturato in SQL Server Profilatore.
- Esaminare la distribuzione degli eventi in base al tipo e all'ora.
- Calcolare le metriche aggregate del consumo di risorse.
- Identificare i periodi di massima attività e i colli di bottiglia delle risorse.
- Utilizzare la traccia per l'analisi di Database Engine Tuning Advisor.
- Ripetere la traccia sui sistemi di test per convalidare le modifiche.
13. Rilevamento della corruzione del database con SQL Server Profiler
13.1 Utilizzo SQL Server Profiler per i primi segnali di allarme della corruzione
La corruzione del database rappresenta una delle minacce più gravi all'integrità dei dati e all'affidabilità del sistema. SQL Server Profiler non è uno strumento dedicato al rilevamento della corruzione, ma può catturare segnali di avvertimento critici che indicano potenziali problemi di corruzione che richiedono un'indagine immediata.
13.2 Eventi di errore critico che indicano potenziale corruzione
- Errori di gravità 24 (823, 824, 825): guasti hardware e multimediali.
- Errore 605: Tentativi di recupero della pagina non riusciti
- Errore 8928 e 8929: danneggiamento dell'oggetto
13.3 Comportamenti sospetti del database e modelli di avviso
- Timeout di query ripetuti su oggetti specifici
- Violazioni di accesso e arresti anomali delle applicazioni
- Clustering di errori insoliti
13.4 Eseguire DBCC CHECKDB in base ai risultati del profiler
If SQL Server Profiler rileva corruzioni sospette. È possibile utilizzare DBCC CHECKDB per eseguire un controllo completo del database. Quindi, se le corruzioni vengono confermate, eseguire una riparazione. Abbiamo scritto una guida completa su come svolgere queste attività.
Se DBCC CHECKDB non riesce a riparare il database, i danneggiamenti sono gravi. In tal caso, è possibile ricorrere a uno strumento di recupero SQL di terze parti.
14. FAQs
D: È SQL Server Profiler ancora supportato in SQL Server 2022?
A: Sì, SQL Server Profiler è ancora incluso in SQL Server 2022 e SQL Server Management Studio, nonostante sia stato deprecato da allora SQL Server 2016. Microsoft continua a fornire lo strumento con le versioni correnti, ma consiglia di migrare a Extended Events per le nuove implementazioni di monitoraggio. Lo strumento rimane funzionale e ampiamente utilizzato per la risoluzione dei problemi e l'analisi ad hoc.
D: Qual è la differenza tra SQL Server Profiler e SQL Trace?
A: SQL Server Profiler è lo strumento di interfaccia utente grafica che si connette al motore SQL Trace in esecuzione all'interno SQL ServerSQL Trace è la tecnologia di base che cattura effettivamente gli eventi. È possibile creare tracce utilizzando l'interfaccia di Profiler o direttamente tramite stored procedure T-SQL come sp_trace_create. Profiler semplifica la configurazione, mentre le tracce T-SQL offrono maggiori possibilità di automazione.
D: Quanto sovraccarico di prestazioni comporta SQL Server Aggiungere il profiler?
R: L'impatto sulle prestazioni varia in base alla configurazione della traccia. Una traccia ben filtrata che cattura solo eventi specifici può comportare un sovraccarico dell'1-5%. Tracce mal configurate e prive di filtri possono comportare un sovraccarico del 20-50% o più, soprattutto su sistemi con un elevato carico di lavoro. Le tracce lato server hanno un impatto inferiore rispetto a quelle lato client. Utilizzare sempre i filtri per ridurre al minimo il volume degli eventi e testare prima le tracce in ambienti non di produzione.
D: Posso correre? SQL Server Profiler sui server di produzione?
A: Puoi correre SQL Server Profiler sui server di produzione, ma con cautela. Utilizzare filtri altamente selettivi, limitare la durata delle tracce e preferire le tracce lato server per ridurre al minimo l'impatto. Eseguire le tracce di produzione durante i periodi di bassa attività, quando possibile. Per un monitoraggio continuo della produzione, prendere in considerazione invece Extended Events o Query Store, poiché offrono un overhead inferiore.
D: Quali permessi mi servono per usare SQL Server Profilatore?
R: Per creare ed eseguire tracce è necessaria l'autorizzazione ALTER TRACE. I membri del ruolo predefinito del server sysadmin dispongono automaticamente di questa autorizzazione. Per gli utenti non sysadmin, è necessario concedere esplicitamente l'autorizzazione ALTER TRACE. Inoltre, sono necessarie le autorizzazioni appropriate per salvare i dati di traccia in file o tabelle in base alla configurazione.
D: Perché non riesco a vedere tutti gli eventi nella mia traccia?
R: Gli eventi mancanti sono in genere il risultato di filtri eccessivamente restrittivi o di un buffer overflow. Rivedi la configurazione del filtro per assicurarti che non escluda gli eventi desiderati. Il buffer overflow si verifica quando SQL Server Non è possibile scrivere gli eventi abbastanza velocemente, solitamente con tracce non filtrate su sistemi molto trafficati. Aggiungere filtri per ridurre il volume degli eventi o aumentare le prestazioni di I/O del disco. Verificare la presenza di messaggi di errore che indicano che gli eventi non sono stati acquisiti.
D: Come faccio ad acquisire informazioni sullo stallo con SQL Server Profilatore?
A: Crea una traccia che includa gli eventi Lock:Deadlock e Lock:Deadlock Chain dalla categoria Blocchi. Assicurati che la colonna TextData sia selezionata, poiché contiene il file XML del grafico dei deadlock. Quando si verifica un deadlock, copia il file XML dalla colonna TextData, salvalo con estensione .xdl e aprilo in SQL Server Management Studio per visualizzare il diagramma grafico di stallo.
D: Qual è la differenza tra il salvataggio delle tracce su file e su tabelle?
A: I file offrono prestazioni migliori durante l'esecuzione della traccia perché bypassano il SQL Server Motore di archiviazione. Le tracce di file scrivono i dati direttamente su disco con un overhead minimo. Le tracce di tabella scrivono tramite il motore di archiviazione, aggiungendo overhead ma consentendo query T-SQL immediate sui dati di traccia. Utilizza i file per scenari sensibili alle prestazioni e le tabelle quando è necessario interrogare i dati immediatamente durante o dopo l'acquisizione.
D: Posso automatizzare SQL Server Raccolta di tracce del profiler?
R: Sì, automatizza la raccolta delle tracce utilizzando tracce lato server create con stored procedure T-SQL. Scrivi script utilizzando sp_trace_create e procedure correlate, quindi pianificali tramite SQL Server Processi degli agenti. Questo approccio consente la raccolta automatica delle tracce secondo pianificazioni specifiche. Gli script di PowerShell offrono un'ulteriore opzione di automazione per scenari più complessi.
D: Per quanto tempo dovrei eseguire una traccia?
R: La durata della traccia dipende dagli obiettivi. Per la risoluzione di problemi specifici, esegui le tracce mentre riproduci il problema, in genere per 5-30 minuti. Per l'analisi delle prestazioni, acquisisci almeno un'ora durante i periodi di attività di picco. Per l'analisi del carico di lavoro o la pianificazione della capacità, acquisisci diverse ore in diversi periodi di tempo. Interrompi sempre le tracce al termine del monitoraggio per liberare risorse.
D: Cosa devo fare se il mio file di traccia diventa troppo grande?
R: Abilitare il rollover dei file nelle proprietà della traccia per creare più file più piccoli anziché un unico file di grandi dimensioni. Impostare una dimensione massima del file adeguata allo spazio su disco e alle esigenze di analisi. Utilizzare filtri per ridurre il volume degli eventi acquisiti. Per tracce di grandi dimensioni, valutare l'analisi dei dati in segmenti anziché caricare l'intera traccia in una sola volta. Archiviare o eliminare regolarmente i vecchi file di traccia per gestire lo spazio su disco.
D: Come faccio a trovare le query che causano un elevato utilizzo della CPU?
A: Crea una traccia con gli eventi SQL:BatchCompleted e RPC:Completed. Includi le colonne CPU, Duration e TextData. Filtra per Duration per acquisire solo le query che superano una soglia, ad esempio 1000 millisecondi. Dopo aver raccolto i dati, ordinali in base alla colonna CPU in ordine decrescente. Le query in cima consumano più tempo di processore. Esamina queste query per individuare opportunità di ottimizzazione, come indici mancanti o logica inefficiente.
D: Can SQL Server Piani di esecuzione delle query di acquisizione del profiler?
A: SQL Server Profiler può acquisire informazioni sul piano di esecuzione tramite gli eventi XML Showplan nella categoria Prestazioni. Selezionare gli eventi Profilo XML Showplan o Statistiche XML Showplan per acquisire piani di esecuzione completi. La colonna TextData contiene i dati XML del piano. Tuttavia, per l'analisi di routine del piano di esecuzione, SQL Server Le funzionalità del piano di esecuzione grafica di Management Studio o Query Store offrono alternative più semplici.
D: Qual è il modello migliore da cui iniziare per il monitoraggio generale?
A: Il modello Standard offre un buon punto di partenza per il monitoraggio generale. Include eventi comuni di esecuzione delle query, chiamate a stored procedure e tracciamento degli errori con un overhead bilanciato. Per un monitoraggio a basso impatto incentrato sulle prestazioni delle query, utilizzare il modello TSQL. Personalizza i modelli in base alle tue esigenze specifiche aggiungendo filtri e regolando la selezione degli eventi dopo aver compreso le nozioni di base.
D: Come faccio a tracciare solo un'applicazione o un utente specifico?
R: Utilizza i filtri di colonna per isolare applicazioni o utenti specifici. Per le applicazioni, filtra per colonna ApplicationName utilizzando il nome specificato nella stringa di connessione. Per gli utenti, filtra per colonna LoginName con l'attributo SQL Server login o nome account Windows. Combina più filtri per restringere ulteriormente la ricerca, ad esempio filtrando sia in base a NomeApplicazione che a NomeDatabase per monitorare l'attività di un'applicazione in un database specifico.
15. Conclusione e passi successivi
15.1 takeaway chiave
SQL Server Nonostante sia stato deprecato, Profiler rimane uno strumento prezioso per la risoluzione di problemi di database ad hoc. L'interfaccia intuitiva e la completa acquisizione degli eventi lo rendono ideale per sessioni diagnostiche rapide quando sono necessari risultati immediati. Utilizza Profiler per la risoluzione di problemi specifici, l'analisi del comportamento delle applicazioni e gli audit di sicurezza.
Le best practice includono l'utilizzo aggressivo dei filtri per ridurre al minimo l'impatto sulle prestazioni, la preferenza per le tracce lato server per gli ambienti di produzione e la limitazione della durata delle tracce ai periodi necessari. Selezionare solo gli eventi e le colonne essenziali per ridurre il sovraccarico. Salvare le tracce su file anziché su tabelle per prestazioni migliori durante l'acquisizione.
15.2 Andare avanti: adottare strumenti moderni
Transizione da SQL Server Da Profiler a Extended Events per soluzioni di monitoraggio a lungo termine. Mentre Profiler rimane funzionale, investire tempo nell'apprendimento di Extended Events ti prepara per il futuro SQL Server versioni. Inizia con semplici sessioni di Eventi estesi che replicano le tracce comuni del Profiler.
Abilita Query Store sui database di produzione per ottenere un monitoraggio automatico delle prestazioni senza configurazione manuale delle tracce. Query Store acquisisce continuamente i piani di query e le statistiche di esecuzione, fornendo dati di riferimento per l'analisi delle prestazioni. Combina Query Store con sessioni di Extended Events mirate per un monitoraggio completo.
15.3 Risorse aggiuntive
Le seguenti risorse ti aiuteranno ad approfondire la tua SQL Server Conoscenza del profiler e aggiornamento sulle migliori pratiche di monitoraggio:
Documentazione ufficiale Microsoft
- SQL Server Documentazione del profiler – Riferimento completo per eventi, colonne e procedure
- Procedure archiviate del sistema SQL Trace – Riferimento T-SQL per la creazione di tracce lato server
- Documentazione estesa degli eventi – Orientamento alla migrazione e moderni approcci di monitoraggio
- Documentazione di Query Store – Riferimento al monitoraggio automatico delle prestazioni delle query
- Strumenti di monitoraggio e ottimizzazione delle prestazioni – Panoramica di tutto SQL Server opzioni di monitoraggio
Risorse della Community
- SQL Server Central – Articoli, forum e script per professionisti dei database
- Stack Overflow SQL Server Tag – Domande e risposte della community per domande specifiche sulla risoluzione dei problemi
- Reddit r/SQLServer – Forum di discussione per SQL Server argomenti e consigli
- Forum di SQLServerCentral.com: discussioni attive della community su profilazione e prestazioni
- MSDN SQL Server Forum – Forum di supporto della community ospitati da Microsoft
Blog e articoli tecnici
- SQL Server performance Monitor – Contenuto dedicato al monitoraggio e all’ottimizzazione delle prestazioni
- Blog illimitato di Brent Ozar: best practice per l'ottimizzazione e il monitoraggio delle prestazioni
- SQLSkills.com – Livello esperto SQL Server contenuti da leader del settore
- Microsoft SQL Server Blog – Aggiornamenti ufficiali sui prodotti e annunci di funzionalità
- Simple Talk – Pratico SQL Server tutorial e casi di studio
Formazione e certificazione
- Microsoft Impara – Moduli di formazione online gratuiti per SQL Server
- Microsoft Certified: Amministratore associato del database Azure – Percorso di certificazione ufficiale
- Pluralsight SQL Server Corsi – Formazione video sulla profilazione e l’ottimizzazione delle prestazioni
- Learning LinkedIn SQL Server Formazione – Corsi di aggiornamento professionale
- Udemy SQL Server Corsi di Performance – Opzioni di formazione pratica e pratica
Libri
- SQL Server Ottimizzazione delle prestazioni delle query: guida completa all'ottimizzazione delle prestazioni
- Pro SQL Server Interni – Immergiti in profondità SQL Server architettura
- SQL Server Piani di esecuzione: comprendere l'ottimizzazione delle query
- Indicizzazione delle prestazioni degli esperti per SQL Server – Progettazione e ottimizzazione dell’indice
- SQL Server Risoluzione avanzata dei problemi e ottimizzazione delle prestazioni – Tecniche diagnostiche avanzate
Strumenti e utilità
- SQL Server Studio di gestione – Interfaccia primaria per SQL Server Profiler
- Azure DataStudio – Moderno strumento di database multipiattaforma
- sp_WhoIsActive – Procedura archiviata di monitoraggio creata dalla comunità
- SQL Sentry Plan Explorer – Strumento gratuito di analisi del piano di esecuzione
- DBForge Studio – di terze parti SQL Server strumento di sviluppo e amministrazione
L'autore
Yuan Sheng è un amministratore di database senior (DBA) con oltre 10 anni di esperienza in SQL Server ambienti e gestione di database aziendali. Ha risolto con successo centinaia di scenari di ripristino di database in aziende di servizi finanziari, sanitari e manifatturiere.
Yuan è specializzato in SQL Server recupero del database, soluzioni ad alta disponibilitàe ottimizzazione delle prestazioni. La sua vasta esperienza pratica include la gestione di database multi-terabyte, l'implementazione Gruppi di disponibilità sempre attivie sviluppo di strategie automatizzate di backup e ripristino per sistemi aziendali critici.
Grazie alla sua competenza tecnica e al suo approccio pratico, Yuan si concentra sulla creazione di guide complete che aiutano gli amministratori di database e i professionisti IT a risolvere problemi complessi SQL Server sfide in modo efficiente. Si mantiene aggiornato con le ultime SQL Server versioni e le tecnologie di database in continua evoluzione di Microsoft, testando regolarmente gli scenari di ripristino per garantire che le sue raccomandazioni riflettano le migliori pratiche del mondo reale.
Hai domande su SQL Server recupero o hai bisogno di ulteriore assistenza per la risoluzione dei problemi del database? Yuan accoglie feedback e suggerimenti per migliorare queste risorse tecniche.























