Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come acquisire e analizzare gli eventi di SQL Server

Quando lavori come amministratore di database di SQL Server, dovresti avere le capacità per immergerti profondamente nell'oceano di SQL Server Engine e scoprire cosa sta succedendo internamente, al fine di essere in grado di rilevare, risolvere e risolvere qualsiasi problema che potresti incontrare.
Puoi trarre vantaggio dai log scritti dal motore di SQL Server localmente sotto forma di log di SQL Server o esternamente sotto forma di log di eventi, ma non puoi considerarli come l'unica fonte per la risoluzione dei problemi e l'ottimizzazione operazioni.

SQL Server offre una serie di funzionalità integrate che possono essere usate per raccogliere i diversi tipi di eventi di SQL Server. In questo articolo, esamineremo queste funzionalità integrate e considereremo uno degli strumenti gratuiti di terze parti più efficienti che possono essere utilizzati per raccogliere e analizzare gli eventi di SQL Server.

Profilatore SQL

SQL Server Profiler è ampiamente utilizzato dagli amministratori e dagli sviluppatori di database di SQL ServerSQL Server per raccogliere tipi di eventi varianti sulle query in esecuzione sull'istanza di SQL Server connessa e quindi utilizzare queste informazioni per migliorare le prestazioni delle query.

SQL Profiler offre la possibilità di acquisire un'ampia varietà di eventi, specificare le proprietà dell'evento che interessano e filtrare i dati acquisiti in base ai valori delle proprietà specificati in precedenza. Puoi andare alla profondità di quale utente sta eseguendo quale tipo di azione su quale tabella del database, da quale macchina ea che ora esattamente. Inoltre, SQL Profiler mostra il numero di risorse consumate e mostra se l'azione è stata completata o non riuscita con un errore.

La raccolta di eventi tramite SQL Profiler viene eseguita utilizzando un numero di modelli esistenti o creando il proprio modello personalizzato utilizzando gli eventi esistenti. Innanzitutto, devi connetterti all'istanza di SQL Server da cui intendi acquisire gli eventi, fornendo il nome dell'istanza di SQL Server, il metodo di autenticazione e le credenziali necessarie per la connessione a tale istanza di SQL Server, come mostrato di seguito:

Dopo la connessione all'istanza di SQL Server, ti verrà richiesto di specificare il modello per gli eventi da raccogliere, in base allo scopo del processo di profilazione, come mostrato di seguito:

È possibile vedere dall'immagine precedente che SQL Profiler offre un'opzione per salvare il risultato della traccia in un file o in una tabella di database esistente. Se nessuno dei modelli forniti soddisfa le tue esigenze, puoi passare facilmente alla Selezione eventi tab e spuntare per mostrare tutti gli eventi e le colonne e quindi filtrare gli eventi acquisiti con le proprietà che ti interessano. Ad esempio, puoi filtrare per catturare eventi provenienti da un database specifico, un utente del database, una tabella del database, una macchina host e così via acceso, come segue:

Dopo aver selezionato gli eventi che ti interessano, fai clic su Esegui pulsante e inizia a ricevere gli eventi dal database selezionato, come mostrato di seguito:

Tieni presente che, se non definisci un filtro molto accurato per raccogliere solo gli eventi che ti interessano, SQL Profiler raccoglierà un gran numero di eventi che saranno difficili da leggere e analizzare. Inoltre, non consigliato di eseguire lo strumento SQL Profiler nell'ambiente di produzione in quanto "mangerà" le risorse del server e ne ridurrà le prestazioni. Se hai davvero bisogno di usarlo, prova a restringere l'ambito degli eventi da catturare utilizzando filtri accurati.

Eventi estesi

Per superare il problema di degrado delle prestazioni causato dall'uso dello strumento deprecato SQL Profiler per acquisire i diversi tipi di eventi SQL, in SQL Server 2008 è stata introdotta una funzionalità di monitoraggio delle prestazioni leggera, altamente scalabile e configurabile, che può essere utilizzata per raccogliere informazioni utili dall'ampia gamma di azioni disponibili, con il minor consumo possibile di risorse SQL, che aiuta nella risoluzione dei problemi e nell'ottimizzazione delle prestazioni delle query di SQL Server. Questa funzionalità di acquisizione degli eventi è denominata Eventi estesi di SQL Server .

La funzionalità Eventi estesi è accessibile tramite SQL Server Management Studio da Eventi estesi opzione nella Gestione nodo. Per creare una nuova sessione di eventi estesi, fai clic con il pulsante destro del mouse su Sessioni opzione, sotto gli Eventi estesi nodo e seleziona Nuova sessione come di seguito:

Dalla Nuova Sessione finestra, hai la possibilità di scegliere tra un numero di modelli disponibili, con più modelli predefiniti rispetto ai modelli di SQL Profiler, o semplicemente di utilizzare il modello vuoto e specificare esplicitamente gli eventi che ti interessano, come mostrato di seguito:

Da Eventi scheda, puoi filtrare gli eventi che ti interessano in base alla categoria eventi, quindi scegliere quali proprietà per ciascun evento devi recuperare. Inoltre, puoi creare un filtro personalizzato per restringere l'ambito degli eventi acquisiti, come mostrato di seguito:

Lo spazio di archiviazione La pagina fornisce diverse opzioni per salvare il risultato della sessione Eventi estesi. In questo esempio, manterremo il risultato della traccia in un file di eventi estesi con le impostazioni configurate di seguito:

Dopo aver personalizzato la sessione Eventi estesi per soddisfare i tuoi requisiti di monitoraggio, fai clic su OK pulsante per creare la sessione. Dopo che la sessione è stata creata, non avvierà automaticamente l'acquisizione degli eventi a meno che non lo si configuri durante il processo di creazione della sessione. Per consentire alla sessione di avviare l'acquisizione di eventi, fai clic con il pulsante destro del mouse sulla sessione creata e seleziona Avvia sessione opzione, come mostrato di seguito:

Per visualizzare la sessione acquisita hai la possibilità di aprire il file fisico che è stato precedentemente configurato per memorizzare gli eventi, oppure semplicemente fare clic con il pulsante destro del mouse sulla sessione creata e selezionare Guarda i dati in tempo reale opzione, come mostrato di seguito:

Verrà aperta una nuova finestra, che mostra gli eventi raccolti con i valori delle proprietà per ciascun evento, come di seguito:

Sebbene tu possa creare facilmente eventi estesi con pochi clic, devi comunque affrontare alcune difficoltà mentre cerchi di scegliere l'evento corretto da monitorare, a causa della complessità della convenzione di denominazione degli eventi, che rende difficile capire lo scopo dietro ogni evento. Inoltre, la GUI in cui vengono visualizzate le informazioni sulla sessione non è ancora intuitiva, il che complica l'analisi degli eventi e delle loro proprietà. Da questo momento, cresce la necessità di uno strumento di terze parti più intuitivo, di cui parleremo nella prossima sezione di questo articolo.

Profilatore di eventi dbForge

dbForge Event Profiler per SQL Server è GRATUITO strumento che offre la possibilità di acquisire e analizzare gli eventi di SQL Server e archiviare i dati degli eventi in un file di traccia fisico per un esame successivo.

dbForge Event Profiler per SQL Server risolve il problema del degrado delle prestazioni di SQL Profiler eseguendo con le massime prestazioni possibili e il carico minimo del server con il supporto completo per la funzionalità Eventi estesi.

Ciò che rende lo strumento di profilatura eventi dbForge Event Profiler per SQL Server interessante rispetto alla funzionalità Eventi estesi è l'Evidenziazione della sintassi della query funzionalità che non è disponibile nella funzionalità SQL Profiler o Eventi estesi. Inoltre, offre la possibilità di eseguire il filtro e l'ordinamento operazioni nella griglia con i risultati del tracciamento.

dbForge Event Profiler per SQL Server può essere facilmente utilizzato per monitorare i diversi tipi di attività da Motore di database di SQL Server, Analysis Services e Integration Services, risolvere i problemi relativi alle prestazioni delle transazioni e delle query T-SQL e monitorare i diversi errori di SQL Server e avvisi.

Inoltre, dbForge Event Profiler per SQL Server può essere utilizzato per controllare le diverse attività degli utenti del database di SQL Server o per eseguire test di stress o di controllo qualità. Puoi anche semplicemente creare le tue tracce personalizzate e salvarle per un uso futuro.

Per utilizzare dbForge Event Profiler per SQL Server per acquisire gli eventi di SQL Server, è necessario scaricarlo gratuitamente dalla pagina di download di dbForge e installarlo sul proprio server o computer SQL utilizzando la procedura guidata di installazione diretta, come di seguito :

Per avviare il processo di installazione, fai clic su INSTALLA dal pulsante Benvenuto pagina e specifica la posizione in cui desideri installare lo strumento, da Seleziona destinazione pagina sotto:

Dopo aver specificato il percorso di installazione, fai clic su Avanti pulsante. Nelle scorciatoie pagina, specifica se intendi creare un'icona di collegamento per lo strumento dbForge sul desktop, quindi fai clic su Avanti per procedere:

Nelle Associazioni di file pagina, ti verrà richiesto di specificare l'estensione per i file che verranno associati allo strumento dbForge. Seleziona l'estensione per i file che intendi aprire utilizzando questo strumento, quindi fai clic su Avanti per procedere:

In Ottimizzazione all'avvio pagina, rivedere e selezionare l'opzione migliore per l'utilizzo delle prestazioni dello strumento, quindi fare clic su Avanti per procedere:

Ora inizierà il processo di installazione, in base alle tue selezioni, con la barra di avanzamento che mostra lo stato del processo di installazione, come mostrato di seguito:

Dopo che l'installazione di dbForge Event Profiler per SQL Server è stata completata correttamente, la procedura guidata ti avviserà e ti fornirà un'opzione per avviare lo strumento direttamente dopo aver chiuso la procedura guidata di installazione, come di seguito:

La pagina di benvenuto di dbForge Event Profiler per SQL Server è di facile utilizzo e chiunque abbia familiarità con SSMS può adattarsi facilmente ad essa. Per iniziare una nuova traccia, fai clic su Nuovo opzione sul lato destro dello strumento, come di seguito:

Negli Eventi del Profile Server finestra, è necessario fornire le informazioni di connessione che verranno utilizzate per connettersi all'istanza di SQL Server che verrà monitorata. Se è la prima esecuzione dello strumento e non è presente alcuna connessione salvata in precedenza, fare clic su Nuova connessione pulsante come mostrato di seguito:

In Gestione connessioni finestra, il Nuovo il pulsante ti porterà alla finestra di connessione nota, dove ti verrà richiesto di fornire il nome dell'istanza di SQL Server, la modalità di autenticazione e le credenziali richieste per la connessione a SQL Server. Dopo aver fornito le informazioni sulla connessione, fai clic su Verifica connessione pulsante per verificare se le informazioni che hai inserito sono valide, come mostrato di seguito:

Dopo aver fornito le informazioni sulla connessione dell'istanza di SQL Server, seleziona se utilizzare un modello esistente da un elenco di modelli utili che servono la maggior parte delle funzionalità di traccia oppure deselezionalo per specificare l'elenco di eventi che desideri acquisire nel passaggio successivo. Inoltre, puoi specificare le proprietà del file di destinazione, come segue:

Su Eventi da catturare pagina, troverai un elenco di eventi facile da usare e ben categorizzato, che vengono descritti in modo significativo, senza la necessità di approfondire e cercare di capirne i significati, come mostrato di seguito:

L'immagine sottostante mostra anche tutte le categorie di eventi disponibili, con il numero di eventi in ciascuna categoria. Ora puoi divertirti a comprendere tutti gli eventi disponibili in base al nome della categoria, come mostrato chiaramente di seguito:

Dopo aver specificato l'elenco degli eventi che ti interessa acquisire, le Azioni La pagina offre la possibilità di specificare l'elenco delle azioni che si desidera acquisire nella sessione dell'evento corrente, come mostrato di seguito:

Sui Filtri eventi pagina, puoi anche disegnare i tuoi filtri per ridurre al minimo il numero di righe raccolte per soddisfare i tuoi requisiti e semplificare l'analisi, come mostrato di seguito:

Le colonne La pagina consente di specificare quali colonne si prevede di visualizzare nella sessione degli eventi in corso. Recuperare solo le colonne che contengono le informazioni che ti interessa acquisire aiuterà a ridurre notevolmente le dimensioni del file di traccia e la larghezza delle righe restituite, il che renderà più semplice l'analisi dei dati acquisiti, come mostrato di seguito:

Dopo aver personalizzato la sessione dell'evento, puoi iniziare a catturare gli eventi facendo clic su Esegui pulsante dall'immagine precedente. Dopo aver avviato la sessione degli eventi, lo strumento inizierà a catturare e visualizzare direttamente gli eventi, come mostrato di seguito:

Il grande vantaggio qui è che facendo clic su qualsiasi evento verrà mostrata una descrizione completa di esso con lo script T-SQL visualizzato in caratteri colorati di facile utilizzo all'interno di una casella separata, che lo rende molto facile da controllare e analizzare, come mostrato di seguito:

Inoltre, dbForge Event Profiler per SQL Server può funzionare come SSMS fornendo un'opzione per scrivere una nuova query T-SQL ed eseguirla sull'istanza di SQL Server connessa, come mostrato di seguito:

Lo strumento visualizza anche i dati restituiti in un'utile griglia che mostra il nome di ogni colonna, il tipo di dati e il valore, come segue:

La maggior parte degli amministratori di database di SQL Server ha riscontrato una situazione in cui ha tentato di eseguire un file SQL Server di grandi dimensioni utilizzando SSMS che ha avuto esito negativo con l'errore OutOfMemory. dbForge Event Profiler per SQL Server risolve questo problema fornendo una funzionalità per eseguire qualsiasi script T-SQL di grandi dimensioni all'interno di un file SQL. Quello che devi fare è solo selezionare Esegui script di grandi dimensioni opzione dal menu Database, quindi selezionare la posizione per quel file di script, il database su cui verrà eseguito questo file e la codifica utilizzata in quel file, come mostrato chiaramente di seguito:

Conclusione

Da tutti gli esempi precedenti, puoi vedere come lo strumento di terze parti dbForge Event Profiler per SQL Server GRATUITO può essere utilizzato per acquisire e analizzare i diversi tipi di eventi di SQL Server superando tutti gli svantaggi degli strumenti di acquisizione di eventi comuni. È un GRATIS strumento e vale sicuramente la pena usarlo.