1. Introduzione a SQL Server performance Monitor
1.1 Che cos'è SQL Server Monitoraggio delle prestazioni?
SQL Server Il monitoraggio delle prestazioni è il processo di monitoraggio, analisi e gestione delle prestazioni e dello stato di salute del tuo SQL Server database. Implica la raccolta e l'interpretazione di dati su vari aspetti del sistema di database per garantire prestazioni ottimali, prevenire problemi e mantenere l'integrità del database.
Il monitoraggio delle prestazioni comprende il monitoraggio dei tempi di esecuzione delle query, dell'utilizzo delle risorse, delle prestazioni degli indici, dei blocchi e dei deadlock e dei modelli di crescita del database. Questa supervisione continua aiuta gli amministratori a identificare potenziali problemi prima che abbiano un impatto sugli utenti o sulle operazioni aziendali.
1.2 Principali vantaggi del monitoraggio delle prestazioni
Efficace SQL Server il monitor delle prestazioni offre diversi vantaggi critici:
- Rilevamento proattivo dei problemi: Identificare e affrontare potenziali problemi prima che abbiano un impatto sugli utenti o sulle operazioni aziendali
- Ottimizzazione delle prestazioni: Individuare colli di bottiglia e inefficienze per migliorare le prestazioni complessive del database
- Pianificazione della capacità: Prevedere le esigenze di risorse e pianificare la crescita futura in base ai dati storici
- Conformità e sicurezza: Garantire il rispetto dei requisiti normativi e rilevare attività sospette
1.3 Sfide comuni relative alle prestazioni
Senza un adeguato monitoraggio delle prestazioni del database SQL, le organizzazioni si trovano ad affrontare diversi rischi:
- Tempi di inattività imprevisti che interrompono le operazioni aziendali
- Scarse prestazioni dell'applicazione che influiscono sull'esperienza dell'utente
- Perdita o danneggiamento dei dati
- Utilizzo inefficiente delle risorse che comporta costi superflui
- Utenti frustrati e potenziale perdita di fatturato
Secondo uno studio IDC del 2023, il 65% dei problemi di prestazioni dei database deriva da pratiche di monitoraggio o ottimizzazione scadenti.
2. Informazioni su Windows Performance Monitor (PerfMon)
2.1 Che cos'è Windows Performance Monitor?
Windows Performance Monitor (PerfMon) è uno strumento integrato di Windows che monitora le risorse di sistema e le prestazioni delle applicazioni. Per SQL Server amministratori, PerfMon fornisce informazioni preziose sia sul sistema operativo che SQL Server metriche, rendendolo essenziale per un'analisi completa delle prestazioni.
PerfMon misura le statistiche delle prestazioni a intervalli regolari e le salva in file per analisi successive. Gli amministratori di database possono selezionare l'intervallo di tempo, il formato del file e le statistiche da monitorare. Lo strumento non è SQL Server-specifico: gli amministratori di sistema lo utilizzano per monitorare Windows stesso, Exchange, i file server e qualsiasi applicazione che possa riscontrare colli di bottiglia.
2.2 Avvio di Performance Monitor
È possibile avviare Performance Monitor utilizzando diversi metodi:
- Clicchi Inizio, Il tipo di perfmon nella casella di ricerca, clicca su "Performand Monitor" nel risultato della ricerca:
- Stampa Windows + R, Il tipo di perfmone premere entra
- Accedere a Pannello di controllo -> Sistema e sicurezza -> Strumenti di amministrazione -> performance Monitor
3. essenziale SQL Server Contatori delle prestazioni
3.1 Contatori delle prestazioni della memoria
I contatori di memoria sono fondamentali per il monitoraggio SQL Server prestazioni poiché indicano se il database dispone di risorse di memoria sufficienti.
MByte disponibili
Questo contatore mostra la quantità di memoria fisica immediatamente disponibile per l'allocazione. Dovrebbe rimanere abbastanza costante e idealmente non scendere sotto i 4096 MB. Valori bassi potrebbero indicare che SQL ServerL'impostazione di memoria massima è lasciata al valore predefinito o nonSQL Server le applicazioni consumano memoria.
Aspettativa di vita della pagina
La durata prevista della pagina misura per quanto tempo (in secondi) una pagina rimane nel buffer pool senza essere referenziata. Un valore normale è di 300 secondi o più. Valori inferiori indicano un utilizzo eccessivo della memoria e un turnover eccessivo del buffer, riducendo l'efficacia della cache.
Rapporto di hit della cache buffer
Questo contatore indica la percentuale di richieste di dati a cui è stata data risposta utilizzando la cache buffer SQL (memoria) anziché la lettura dal disco. Solitamente raggiunge o supera il 99%. Valori inferiori suggeriscono che SQL Server necessita di più memoria o si sta ancora riscaldando dopo un riavvio.
Concessioni di memoria in sospeso
Questo mostra il numero di processi in attesa di memoria all'interno SQL ServerIn condizioni normali, questo valore dovrebbe essere costantemente 0. Valori più alti indicano un'allocazione di memoria insufficiente per SQL Server.
Memoria target del server rispetto alla memoria totale del server.
Target Server Memory indica la quantità ideale di memoria SQL Server vuole usare. La memoria totale del server mostra cosa SQL Server attualmente utilizzato. Il rapporto tra questi valori dovrebbe essere circa 1. Differenze significative potrebbero indicare una pressione sulla memoria o una memoria disponibile insufficiente.
3.2 Contatori delle prestazioni del processore
I contatori della CPU aiutano a identificare i colli di bottiglia del processore e a capire come SQL Server utilizza risorse di elaborazione.
% Tempo di elaborazione
Misura la percentuale di tempo trascorso dal processore nell'esecuzione di thread non inattivi. Sui server attivi, i valori possono raggiungere il 100%, ma un utilizzo prolungato superiore al 70-75% indica in genere problemi di prestazioni per gli utenti. Indici mancanti o inadeguati causano spesso un elevato utilizzo della CPU.
% Tempo privilegiato
Il tempo di elaborazione è suddiviso tra l'elaborazione in modalità Utente e quella in modalità Privilegiata (Kernel). Tutti gli accessi al disco e le operazioni di I/O avvengono in modalità Kernel. Se questo contatore supera il 25%, è probabile che il sistema esegua troppe operazioni di I/O. I valori normali sono compresi tra il 5% e il 10%.
Lunghezza della coda del processore
Questo contatore mostra i thread in attesa di risorse CPU. I valori sono costantemente superiori a 1 (tranne durante SQL Server compressione del backup) indicano la pressione della CPU. Questo spesso significa che altre applicazioni sono installate sul SQL Server macchina, che viola le migliori pratiche.
Cambiamenti di contesto/sec
Misura la frequenza con cui il processore passa da un thread all'altro. Un cambio di contesto eccessivo può influire sulle prestazioni e indicare un carico di sistema elevato.
3.3 Contatori delle prestazioni I/O del disco
I contatori dei dischi sono essenziali per il monitoraggio delle prestazioni SQL, poiché l'I/O del disco spesso diventa il principale collo di bottiglia nei sistemi di database.
% Tempo su disco
Registra la percentuale di tempo in cui il disco è stato occupato con operazioni di lettura/scrittura. Valori costantemente superiori all'85% indicano un collo di bottiglia I/O. Poiché il disco è molto più lento della memoria, la riduzione di questa metrica migliora le prestazioni.
Media secondi/lettura disco e media secondi/scrittura disco
Questi contatori misurano il tempo medio (in secondi) per le operazioni di lettura e scrittura. Se i valori medi superano i 10-20 ms, il disco impiega troppo tempo per elaborare i dati. Le unità di registro delle transazioni richiedono prestazioni di scrittura particolarmente elevate.
Lunghezza della coda del disco
Indica le richieste di lettura/scrittura su disco in sospeso. Valori costantemente superiori a 2 (o 2 per disco per array RAID) indicano che il disco non riesce a soddisfare le richieste di I/O.
Byte del disco/sec
Monitora la velocità di trasferimento dati da/verso il disco. Se questa supera la capacità nominale del disco, i dati iniziano a accumularsi, come indicato dall'aumento della lunghezza della coda del disco.
Trasferimenti su disco/sec
Tiene traccia del numero di operazioni di lettura/scrittura eseguite sul disco. SQL Server L'accesso ai dati è in genere casuale, il che è più lento a causa del movimento della testina del disco. Assicurati che questo valore rimanga al di sotto della velocità massima dell'unità disco (in genere 100/sec per le unità standard).
3.4 SQL Server Contatori specifici
3.4.1 Contatori del gestore buffer
Monitoraggio dei contatori di Buffer Manager SQL Serveroperazioni del buffer di memoria:
- Letture pagina/sec: Conteggio cumulativo delle letture di pagine di database fisici
- Scritture di pagine/sec: Conteggio cumulativo delle scritture di pagine di database fisiche
- Scritture pigre/sec: Numero di buffer scritti dal lazy writer per liberare memoria
- Pagine di checkpoint/sec: Pagine svuotate dal checkpoint o da altre operazioni che richiedono lo svuotamento di tutte le pagine sporche
3.4.2 Contatori delle statistiche SQL
Questi contatori forniscono informazioni su SQL Server elaborazione delle query:
- Richieste batch/sec: Numero di richieste batch SQL ricevute dal server. Questo valore serve come parametro di riferimento per l'attività del server.
- Compilazioni SQL/sec: Numero di compilazioni SQL. Dovrebbe essere pari o inferiore al 10% del totale delle richieste batch/sec.
- Ricompilazioni SQL/sec: Numero di ricompilazioni SQL. Dovrebbe essere pari o inferiore al 10% del totale delle richieste batch/sec.
3.4.3 Contatori delle statistiche generali
- Connessioni utente: Numero di utenti connessi al sistema. Utilizzato come parametro di riferimento per monitorare la crescita delle connessioni nel tempo.
- Processi bloccati: Conteggio attuale dei processi bloccati. Idealmente dovrebbe essere 0
3.4.4 Contatori del gestore della memoria
- Sovvenzioni per la memoria in sospeso: Numero totale di processi in attesa di concessione di memoria per l'area di lavoro. Idealmente dovrebbe essere 0
4. Impostazione del monitor delle prestazioni per SQL Server(Windows Vista / Server 2008 e versioni successive)
Per prima cosa dobbiamo creare un contenitore per gestire i contatori più facilmente:
- Per Windows Vista/Server 2008 e versioni successive, è possibile creare set di raccolta dati in questa sezione.
- Per Windows XP / Server 2003 e versioni precedenti, è possibile creare registri contatori in la prossima sezione.
4.1 Cosa sono i set di raccolta dati?
I Data Collector Set organizzano contatori delle prestazioni, dati di tracciamento degli eventi e informazioni sulla configurazione del sistema in un'unica unità di raccolta. Offrono maggiore flessibilità rispetto ai semplici registri dei contatori e consentono la raccolta dati automatizzata e pianificata per un monitoraggio completo delle prestazioni del database SQL.
4.2 Creazione di un set di raccolta dati
Crea un set di raccolta dati personalizzato da monitorare SQL Server contatori delle prestazioni:
- Apri Performance Monitor
- Espandere Set di raccolta dati
- Fare clic con Definito dall'utente
- Seleziona New -> Set di raccolta dati
- Inserisci un nome descrittivo (ad esempio, "SQL Server Metriche delle prestazioni”)
- Seleziona Crea manualmente (avanzato)
- Clicchi Avanti
- Vedi Crea registri dati -> Contatore prestazioni
- Clicchi Avanti
- Clicchi Aggiungi per selezionare i contatori
- Aggiungi desiderato SQL Server e contatori di sistema.
- Impostato Intervallo di campionamento
- Per il monitoraggio di routine, utilizzare 1 minuto (60 secondi)
- Per la risoluzione attiva dei problemi, utilizzare 15-30 secondi
- Evitare di eseguire acquisizioni ad alta frequenza a lungo termine, poiché possono influire sulle prestazioni e generare dati eccessivi.
- Clicchi Avanti
- Scegli la posizione in cui salvare i registri
- Clicchi Finitura, verrà creato un nuovo set di raccolta dati.
- Per impostazione predefinita, il nuovo set di raccolta dati verrà NON avviarsi automaticamente. Devi trovarlo nel pannello di sinistra, sotto Cookie di prestazione -> Set di raccolta dati -> Definito dall'utente -> Il tuo Data Collector, fai clic con il pulsante destro del mouse e scegli Inizio
4.3 Contatori chiave da aggiungere
- Memoria -> MByte disponibili
- Disco fisico -> Media secondi/lettura disco (tutte le istanze tranne _Totale)
- Disco fisico -> Media secondi/scrittura disco (tutte le istanze tranne _Totale)
- Disco fisico -> Letture disco/sec (tutte le istanze tranne _Totale)
- Disco fisico -> Scritture disco/sec (tutte le istanze tranne _Totale)
- Processore -> % Tempo processore (tutte le istanze tranne _Totale)
- SQLServer: Statistiche generali -> Connessioni utente
- SQLServer: Memory Manager -> Memory Grants Pending
- SQLServer: Statistiche SQL -> Richieste batch/sec
- SQLServer: Statistiche SQL -> Compilazioni SQL/sec
- SQLServer: Statistiche SQL -> Ricompilazioni SQL/sec
- Sistema -> Lunghezza coda processore
4.4 Impostazione delle condizioni di arresto
Configurare le condizioni di arresto per impedire una crescita illimitata dei dati:
- Dopo aver creato il set di raccolta dati, fare clic con il pulsante destro del mouse e selezionare Proprietà a Confronto
- Clicca su Condizione di arresto linguetta
- Consentire a tutti Durata complessiva
- Imposta la durata su 1 giorno (24 ore)
- Clicchi OK salvare
Ciò garantisce che il file di registro non diventi troppo grande e che il processo si riavvii automaticamente se programmato.
4.5 Pianificazione della raccolta dati
Automatizzare la raccolta dati per garantire un monitoraggio coerente:
- Fare clic con il pulsante destro del mouse sul set di raccolta dati e selezionare Proprietà a Confronto
- Clicca su Programma linguetta
- Clicchi Aggiungi per creare un nuovo programma
- Configura la data e l'ora di inizio
- Imposta uno schema di ricorrenza (ad esempio, giornaliero)
- Clicchi OK per salvare la programmazione
Per l'avvio automatico, configura il Data Collector Set in modo che si avvii all'avvio del server creando un trigger di avvio in Utilità di pianificazione di Windows.
5. Impostazione del monitor delle prestazioni per SQL Server(Windows XP / Server 2003 e precedenti)
Per Windows XP/Server 2003 e versioni precedenti, è possibile creare registri contatori, che consentono di selezionare un set di contatori delle prestazioni e registrarli periodicamente in un file.
5.1 Creazione di registri dei contatori
Per creare un nuovo registro del contatore, segui questi passaggi:
- Apri Performance Monitor
- Espandere Registri delle prestazioni e avvisi nel riquadro di sinistra
- Fare clic con Registri dei contatori
- Seleziona Nuove impostazioni del registro
- Assegna al registro il nome del server del database (ad esempio, "ProductionSQL01")
- Clicchi OK per iniziare la configurazione
La creazione di registri dei contatori separati per ciascun server consente di testare le prestazioni su singoli server senza raccogliere dati per tutti i server contemporaneamente.
5.2 Aggiunta di contatori delle prestazioni
Dopo aver creato un registro dei contatori, aggiungi i contatori delle prestazioni specifici che desideri monitorare:
- Clicca su Aggiungi contatori pulsante
- Cambia il nome del computer in modo che punti al tuo SQL Server esempio
- Stampa Linguetta per caricare gli oggetti di prestazione disponibili
- Seleziona un oggetto di prestazione dal menu a discesa (ad esempio, Memorie)
- Scegli contatori specifici da la lista
- Selezionare le istanze, se applicabili (ad esempio, singoli processori o dischi).
- Clicchi Aggiungi per includere il contatore
- Ripetere per tutti i contatori desiderati
- Clicchi Chiudi Al termine
5.3 Configurazione degli intervalli di campionamento
L'intervallo di campionamento determina la frequenza con cui Performance Monitor raccoglie i dati. Configura gli intervalli appropriati in base alle tue esigenze di monitoraggio:
- Nelle proprietà del registro del contatore, individuare Dati campione ogni
- Imposta l'intervallo (il valore predefinito è 15 secondi)
- Per il monitoraggio di base, utilizzare intervalli di 1 minuto per la raccolta giornaliera
- Per la risoluzione dei problemi, utilizzare intervalli di 15-30 secondi per brevi raffiche
- Clicchi OK applicare
Ricorda che intervalli più brevi generano più dati, che possono essere più difficili da visualizzare e analizzare. Intervalli più ampi potrebbero perdere picchi importanti. Bilancia la granularità dei dati con i requisiti di archiviazione e analisi.
5.4 Configurazione dei file di registro
Una corretta configurazione del file di registro garantisce che i dati vengano archiviati in modo efficiente e accessibile:
- Clicca su Log files scheda nelle proprietà del registro del contatore
- Cambia il tipo di file di registro in File di testo (delimitato da virgole) per una facile importazione in Excel
- Clicchi Configurazione
- Imposta il percorso del file su una posizione dedicata (ad esempio, una cartella PerformanceLogs condivisa)
- Clicchi OK per confermare
Utilizza una condivisione accessibile in rete per l'archiviazione dei registri, in modo da poter accedere ai file in remoto e condividerli con altri utenti.
5.5 Impostazione delle credenziali
Configurare le credenziali appropriate in modo che Performance Monitor possa accedere in remoto SQL Server istanze:
- Nelle proprietà del registro del contatore, individuare Correre come
- Inserisci il nome utente del tuo dominio nel formato: DOMINIO\nome utente
- Clicchi Imposta password
- Inserisci e conferma la tua password
- Clicchi OK salvare
Ciò consente al servizio PerfMon di raccogliere statistiche utilizzando le autorizzazioni del tuo dominio anziché le proprie credenziali.
6. Analisi dei dati del Performance Monitor
6.1 Visualizzazione dei file di registro in Performance Monitor
Performance Monitor può visualizzare i dati storici dai file di registro salvati:
- Apri Performance Monitor
- Nel riquadro sinistro, fare clic Strumenti di monitoraggio -> performance Monitor.
- Fare clic con il tasto destro del mouse in un punto qualsiasi dell'area del grafico
- Seleziona Proprietà a Confronto
- Clicca su Fonte linguetta
- Seleziona Log files pulsante di scelta
- Clicchi Aggiungi
- Vai al tuo file di registro (.blg o .csv)
- Seleziona il file e fai clic Apri
- Usa il Intervallo di tempo cursore per selezionare il periodo che si desidera analizzare
- Clicchi OK per chiudere la finestra di dialogo Proprietà
- Fare clic sull'icona verde più per aggiungere contatori dal file di registro
- Seleziona i contatori desiderati da visualizzare
- Clicchi OK
Il grafico ora mostrerà i dati storici dal file di registro. Utilizza il cursore "Intervallo di tempo" in "Proprietà" per restringere i periodi di tempo specifici e ottenere un'analisi dettagliata.
6.2 Esportazione dei dati in Excel
Excel offre potenti funzionalità di analisi per i dati dei contatori delle prestazioni:
- Apri Performance Monitor con il tuo file di registro caricato
- Fare clic con il tasto destro del mouse in un punto qualsiasi dell'area del grafico
- Seleziona Salva dati come
- Scegli una posizione per il file
- Seleziona File di testo (delimitato da virgole) (.csv) dal menu a discesa
- Clicchi Salva
- Aprire il file CSV in Excel
Formattare i dati esportati per una migliore analisi:
- Elimina la riga 2 semivuota e cancella la cella A1
- Formatta la colonna A come Data/Ora
- Formatta le colonne numeriche con zero decimali e separatore delle migliaia
- Trova e sostituisci i nomi dei server nelle intestazioni (ad esempio, sostituisci "\\SERVERNAME" con uno spazio vuoto)
- Pulisci i nomi degli oggetti nelle intestazioni (ad esempio, "Memoria", "Disco fisico", "Processore")
- Ridurre la dimensione del carattere dell'intestazione a 8 punti per una migliore visibilità
6.3 Interpretazione dei valori del contatore
6.3.1 Analisi del contatore di memoria
Quando si analizzano i contatori di memoria, cercare questi indicatori:
- MByte disponibili: Dovrebbe rimanere costantemente sopra i 4096 MB
- Aspettativa di vita della pagina: Valori superiori a 300 secondi indicano una memoria sana. Valori inferiori suggeriscono una memoria sotto pressione.
- Rapporto di hit della cache buffer: Dovrebbe soddisfare o superare il 99%. Valori inferiori indicano letture eccessive del disco
- Sovvenzioni per la memoria in sospeso: Dovrebbe essere sempre 0. Qualsiasi valore positivo indica una carenza di memoria.
6.3.2 Analisi del contatore della CPU
Gli indicatori delle prestazioni della CPU includono:
- % Tempo di elaborazione: Un utilizzo prolungato superiore al 75% indica problemi di prestazioni. Picchi fino al 100% sono normali, ma non dovrebbero persistere.
- Lunghezza della coda del processore: I valori superiori a 1 indicano la pressione della CPU. Controlla Task Manager per identificare quali processi consumano CPU.
- % Tempo privilegiato: Dovrebbe rimanere tra il 5 e il 10%. Valori superiori al 25% suggeriscono operazioni di I/O eccessive
6.3.3 Analisi del contatore del disco
Soglie di prestazioni del disco:
- Media secondi su disco/lettura e scrittura: Dovrebbe rimanere al di sotto di 10-20 ms. Valori più alti indicano sottosistemi di dischi lenti
- Lunghezza della coda del disco: Valori costantemente superiori a 2 (o 2 per disco in RAID) indicano colli di bottiglia I/O
- % Tempo disco: Valori sostenuti superiori all'85% indicano la saturazione del disco
6.4 Utilizzo di formule e statistiche
Aggiungi formule statistiche a Excel per un'analisi rapida:
- Inserisci 7 righe vuote nella parte superiore del tuo foglio di calcolo
- Aggiungere etichette nella colonna A: Media, Mediana, Min, Max, Deviazione standard
- Nella cella B2, inserisci: =MEDIA(B9:B100) (adatta B100 all'ultima riga di dati)
- Nella cella B3, immettere: =MEDIANA(B9:B100)
- Nella cella B4, immettere: =MIN(B9:B100)
- Nella cella B5, immettere: =MAX(B9:B100)
- Nella cella B6, immettere: =DEV.ST(B9:B100)
- Copia le formule in tutte le colonne del contatore
- Selezionare la cella B9 e premere Alt+W+F+Invio per bloccare i riquadri
Queste statistiche aiutano a identificare tendenze, valori anomali e intervalli operativi normali per ciascun contatore.
7. Strumento di analisi delle prestazioni per i registri (PAL)
7.1 Introduzione a PAL
Performance Analysis for Logs (PAL) è uno strumento gratuito sviluppato da Clint Huffman che analizza i log di Performance Monitor e genera report HTML con analisi delle soglie. PAL confronta i dati sulle prestazioni con soglie note e fornisce raccomandazioni dettagliate per SQL Server ottimizzazione delle prestazioni.
Scarica PAL dal repository GitHub: https://github.com/clinthuffman/PAL
7.2 Impostazione PAL
Installa PAL seguendo questi passaggi:
- Scarica il file di installazione PAL da GitHub
- Eseguire il programma di installazione
- Clicchi Avanti nella schermata di benvenuto
- Rivedere e accettare la directory di installazione
- Clicchi Avanti continuare
- Clicchi Installazione per iniziare l'installazione
- Attendere che l'installazione venga completata
- Clicchi Finitura
7.3 Elaborazione dei file di registro con PAL
Analizza i log di Performance Monitor utilizzando PAL:
- Avvia PAL dal menu Start o dalla directory di installazione.
- Clicca su Registro contatore linguetta
- Clicchi Scopri la nostra gamma di prodotti per selezionare il tuo file .blg
- Vai al file di registro di Performance Monitor
- Clicchi Apri
- Clicca su File di soglia linguetta
- Selezionare un file di soglia dal menu a discesa (ad esempio, "SQL Server 2016” )
- Clicca su Domande linguetta
- Rispondi alle domande sulla configurazione del tuo sistema
- Specifica se il tuo SQL Server è OLTP o Data Warehouse
- Inserisci la RAM totale disponibile
- Clicca su Opzioni di output linguetta
- Seleziona una directory di output per il report HTML
- Vedi HTML formato di output
- Clicca su Eseguire linguetta
- Rivedi le tue selezioni
- Vedi Avviare l'esecuzione ora
- Clicchi Finitura
7.4 Analisi dei report PAL
Dopo aver completato l'analisi, PAL genera un report HTML contenente:
- Riepilogo esecutivo dei problemi di performance
- Analisi dettagliata del contatore con grafici
- Violazioni della soglia evidenziate a colori
- Raccomandazioni specifiche per ogni problema
- Tendenze e modelli storici
Il report utilizza una codifica a colori per indicare la gravità: rosso per problemi critici, giallo per avvisi e verde per parametri sani. Esamina ogni sezione per comprendere i colli di bottiglia delle prestazioni e seguire le raccomandazioni di PAL per l'ottimizzazione.
8. Alternativa SQL Server Strumenti di monitoraggio
8.1 Built-in SQL Server Strumenti
8.1.1 SQL Server Activity Monitor
SQL Server Activity Monitor visualizza informazioni in tempo reale su SQL Server processi e prestazioni:
- Apri SQL Server Management Studio (SSMS) e connettiti all'istanza del tuo server
- Fare clic con il pulsante destro del mouse sul nome del server in Esplora oggetti
- Seleziona Activity Monitor
Activity Monitor mostra processi, attese delle risorse, I/O dei file di dati e query costose recenti. Fornisce informazioni rapide sull'attività corrente del database, ma non memorizza i dati storici.
8.1.2 SQL Server Dashboard delle prestazioni
SQL Server Management Studio include report sulle prestazioni integrati:
- In SQL Server Management Studio (SSMS), fare clic con il pulsante destro del mouse su SQL Server istanza in Esplora oggetti
- Seleziona Report -> Rapporti standard
- Scegli tra i report disponibili come Dashboard delle prestazioni
La dashboard delle prestazioni fornisce informazioni visive su SQL Server Prestazioni dell'istanza, inclusi l'utilizzo della CPU di sistema, le richieste in attesa correnti e le metriche delle prestazioni. È possibile accedervi tramite il menu Report standard.
8.1.3 SQL Server Profiler
SQL Server Profiler cattura e analizza SQL Server eventi quali l'esecuzione di query, operazioni di transazione e attività di accesso.
Per iniziare SQL Server profilatore:
- In SQL Server Management Studio, clicca Strumenti -> SQL Server Profiler
Profiler introduce un notevole sovraccarico prestazionale, quindi utilizzatelo con cautela e preferibilmente durante le ore di minore affluenza. Nella maggior parte dei casi, Extended Events offre prestazioni migliori con un impatto minore.
8.1.4 Eventi estesi
Eventi estesi è un sistema di monitoraggio delle prestazioni leggero integrato in SQL ServerSostituisce SQL Server Profiler con prestazioni migliori e costi generali inferiori.
Le caratteristiche principali includono:
- Monitoraggio dettagliato di eventi specifici
- Impatto minimo sulle prestazioni
- Sessioni di eventi personalizzabili
- Integrazione con SSMS e altri strumenti
- Supporto per filtraggio e aggregazione complessi
Creare sessioni di eventi estesi tramite SSMS:
- In Esplora oggetti, espandi il tuo server e vai su Gestione -> Eventi estesi -> Sessioni
- Fare clic con il tasto destro del mouse su Sessioni e scegli Nuova procedura guidata di sessione
- Segui le istruzioni per avviare una nuova sessione.
8.1.5 Viste di gestione dinamica (DMV)
I DMV espongono informazioni dettagliate sullo stato del server per monitorarne lo stato, diagnosticare problemi e ottimizzare le prestazioni. I principali DMV includono:
- sys.dm_exec_query_stats: Statistiche sulle prestazioni delle query
- sys.dm_os_wait_stats: Tipi di attesa che influiscono sulle prestazioni del server
- sys.dm_os_performance_counters: SQL Server dati del contatore delle prestazioni
- richieste di esecuzione di sys.dm: Richieste in esecuzione al momento
- sessioni di sys.dm_exec: Sessioni utente attive
Interroga queste viste utilizzando T-SQL per accedere ai dati sulle prestazioni in tempo reale e alle metriche storiche.
Utilizzo di base
-- See all active connections
SELECT * FROM sys.dm_exec_connections;
-- View current sessions
SELECT * FROM sys.dm_exec_sessions;
-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);
8.2 Soluzioni di monitoraggio di terze parti
Monitor SQL Redgate
Redgate SQL Monitor è specializzato nel monitoraggio SQL Server e ambienti di database SQL di Azure. Offre monitoraggio a livello aziendale, avvisi e dashboard personalizzabili, funzionalità di reporting dettagliate e integrazione con altri strumenti Redgate.
SolarWinds SQL Server Strumento di monitoraggio
I venti solari SQL Server Lo strumento di monitoraggio, noto anche come SQL Sentry, è progettato per diagnosticare, risolvere e prevenire gravi problemi di prestazioni con SQL Server.
IDERA SQL Server Strumento di monitoraggio delle prestazioni
IDERA SQL Diagnostic Manager è un potente SQL Server Strumento di monitoraggio delle prestazioni progettato per supportare il monitoraggio proattivo, la diagnostica e l'ottimizzazione delle prestazioni.
Monitoraggio SQL di Applications Manager
Applications Manager offre un servizio Microsoft SQL Server Strumento di monitoraggio che fornisce soluzioni IT utili. È progettato per supervisionare le prestazioni dei database SQL, identificando contemporaneamente bug e risolvendo problemi che potrebbero causare interruzioni nelle operazioni di un'organizzazione.
8.3 Strumenti di monitoraggio open source
DBA Dash
DBA Dash è uno strumento di monitoraggio gratuito e open source che fornisce approfondimenti su SQL Server Salute, prestazioni e attività. È particolarmente utile per ambienti di piccole e medie dimensioni e include controlli DBA giornalieri, monitoraggio delle prestazioni e tracciamento della configurazione.
SQLWATCH
SQLWATCH offre un'analisi decentralizzata, quasi in tempo reale SQL Server Monitoraggio con granularità di 5 secondi per l'acquisizione dei picchi di carico di lavoro. Supporta Grafana per dashboard in tempo reale e Power BI per analisi approfondite. Lo strumento offre ampie opzioni di configurazione, zero requisiti di manutenzione e scalabilità illimitata.
Osservatore
Sviluppato da Stack Exchange, Opserver monitora più sistemi tra cui SQL Server, Redis ed Elasticsearch. Fornisce una vista "di tutti i server" per le statistiche di CPU, memoria, rete e hardware nell'intera infrastruttura.
sp_WhoIsActive
sp_WhoIsActive è una stored procedure completa per il monitoraggio delle attività creata da Adam Machanic. Funziona con tutti SQL Server versioni dal 2005 alle versioni attuali ed è ampiamente utilizzato da SQL Server DBA per il monitoraggio delle attività in tempo reale.
Per utilizzare sp_WhoIsActive, scaricalo da http://whoisactive.com/, installalo nel tuo database ed esegui:
EXEC sp_WhoIsActive
La procedura mostra le query attualmente in esecuzione, le informazioni di attesa, i dettagli sui blocchi e il consumo di risorse.
9. Migliori pratiche per SQL Server performance Monitor
9.1 Definizione delle linee di base delle prestazioni
Le linee di base delle prestazioni stabiliscono i normali parametri operativi per il tuo SQL Server ambiente. Senza linee di base, non è possibile determinare se le metriche attuali indicano problemi o rappresentano un comportamento tipico.
Crea linee di base tramite:
- Raccolta di dati sulle prestazioni durante le normali operazioni per almeno una settimana
- Acquisizione di metriche sia durante le ore di punta che durante quelle di minore affluenza
- Documentazione dei valori tipici per i contatori chiave
- Registrazione delle variazioni stagionali, se presenti.
- Memorizzazione dei dati di base per il confronto con le metriche future
Aggiornare le linee di base trimestralmente o dopo modifiche significative all'infrastruttura, aggiornamenti delle applicazioni o modifiche del database.
9.2 Impostazione di soglie di avviso appropriate
Configura soglie intelligenti per ricevere avvisi significativi senza essere sopraffatto dalle notifiche:
- Concessioni di memoria in sospeso > 0 indica pressione di memoria
- La lunghezza della coda del processore > 2 per core suggerisce un collo di bottiglia della CPU
- Disco sec/lettura o scrittura > 20 ms indica I/O lento
- Processi bloccati > 5 segnalano problemi di contesa
- L'aspettativa di vita della pagina < 300 secondi indica pressione sulla memoria
Regola le soglie in base ai dati di base e alle caratteristiche specifiche del carico di lavoro. Utilizza soglie adattive che tengano conto delle normali variazioni del tuo ambiente.
9.3 Revisione e analisi regolare dei dati
Pianificare revisioni periodiche delle prestazioni per identificare tendenze e problemi emergenti:
- Giornaliero: esamina le metriche di alto livello e gli avvisi recenti
- Settimanale: condurre un'analisi approfondita delle tendenze delle prestazioni
- Mensilmente: genera report completi e confrontali con i valori di riferimento
- Trimestrale: rivedere la pianificazione della capacità e le tendenze a lungo termine
Documentare i risultati e monitorare i miglioramenti delle prestazioni nel tempo.
9.4 Monitoraggio del bilanciamento dei costi generali
Il monitoraggio stesso consuma risorse, quindi bilancia la raccolta dati con l'impatto sulle prestazioni:
- Utilizzare intervalli di 30-60 secondi per il monitoraggio continuo
- Utilizzare intervalli di 15 secondi solo per la risoluzione attiva dei problemi
- Limita la durata del set di raccolta dati per evitare dati eccessivi
- Memorizzare i registri su unità separate dai file del database
- Archivia i vecchi dati sulle prestazioni per mantenere dimensioni di file gestibili
Se configurato correttamente, Performance Monitor aggiunge un overhead minimo, in genere inferiore al 2% delle risorse di sistema.
9.5 Conservazione dei dati a lungo termine
Conservare i dati sulle prestazioni per un'analisi significativa delle tendenze e una pianificazione della capacità:
- Conservare almeno 1-2 anni di dati sulle prestazioni
- Archiviare i dati in un archivio separato dopo 3-6 mesi
- Comprimi i file di registro più vecchi per risparmiare spazio
- Documentare eventuali eventi o cambiamenti significativi che influiscono sulle prestazioni
Considerate le dimensioni relativamente ridotte dei dati dei contatori delle prestazioni, conservarli a tempo indeterminato è spesso fattibile e utile per analisi a lungo termine.
9.6 Integrazione con le pratiche DevOps
Incorporare il monitoraggio delle prestazioni del database nelle pipeline CI/CD:
- Includere le metriche delle prestazioni del database nella convalida della distribuzione
- Automatizza i test delle prestazioni per le nuove versioni
- Verificare che le modifiche al codice non abbiano un impatto negativo sulle prestazioni
- Creare benchmark delle prestazioni per ogni versione
- Integrare gli avvisi di monitoraggio con i sistemi di gestione degli incidenti
10. Risoluzione dei problemi comuni di prestazioni
10.1 Identificazione dei colli di bottiglia della CPU
I colli di bottiglia della CPU si manifestano con tempi di risposta lenti alle query e un elevato utilizzo del processore. Per diagnosticare i problemi della CPU, seguire questi passaggi:
- Controllare il contatore della lunghezza della coda del processore. Valori superiori a 2 per core indicano la pressione della CPU
- Esaminare la % del tempo del processore. Valori sostenuti superiori al 75% suggeriscono un collo di bottiglia della CPU
- Desktop remoto per il SQL Server
- Apri Task Manager (Ctrl+Maiusc+Esc)
- Clicca su Processi linguetta
- Vedi Mostra i processi di tutti gli utenti
- Clicca su CPU intestazione di colonna per ordinare in base all'utilizzo della CPU
- Identificare quali processi consumano risorse della CPU
Se non-SQL Server Le applicazioni consumano molta CPU, rimuoverle dal server del database. Se sqlservr.exe utilizza molta CPU, verificare utilizzando questi metodi:
- Controllare le compilazioni SQL/sec e le ricompilazioni SQL/sec. Valori superiori al 10% di richieste batch/sec indicano una compilazione eccessiva
- Eseguire una query su sys.dm_exec_query_stats per identificare le query che richiedono un uso intensivo della CPU
- Esaminare i piani di esecuzione per indici mancanti o operazioni inefficienti
- Valutare l'aggiunta di indici per ridurre le scansioni delle tabelle
10.2 Diagnosi dei problemi di memoria
I problemi di memoria hanno un impatto significativo SQL Server prestazioni. Diagnostica i problemi di memoria utilizzando questi indicatori:
Drop di memoria disponibili
Se i MB disponibili scendono costantemente al di sotto dei 100 MB, il sistema operativo rischia di esaurire la memoria. Windows potrebbe effettuare il paging. SQL Server memoria su disco, causando un degrado delle prestazioni.
Bassa aspettativa di vita della pagina
Un'aspettativa di vita della pagina inferiore a 300 secondi indica un elevato turnover della cache buffer. Ciò suggerisce un'allocazione di memoria insufficiente o un'eccessiva pressione sulla memoria da parte delle query.
Basso rapporto di hit della cache buffer
Un rapporto di hit della cache buffer inferiore al 99% significa SQL Server legge frequentemente i dati dal disco anziché dalla memoria. Ciò si verifica quando il buffer pool è troppo piccolo o SQL Server si sta ancora riscaldando dopo il riavvio.
Concessioni di memoria in sospeso
Qualsiasi valore superiore a 0 per Memory Grants Pending indica che le query sono in attesa di concessioni di memoria. Ciò rappresenta una carenza critica di memoria che richiede attenzione immediata.
Per risolvere i problemi di memoria:
- Configurazione SQL Server impostazione di memoria massima per lasciare una quantità di RAM adeguata per il sistema operativo (in genere 4-8 GB a seconda delle dimensioni del server)
- Abilita l'autorizzazione "Blocca pagine in memoria" per SQL Server account di servizio
- Aggiungere più RAM fisica al server se la pressione della memoria persiste
- Identificare e ottimizzare le query che richiedono molta memoria
10.3 Risoluzione dei problemi di I/O del disco
L'I/O su disco diventa spesso il principale collo di bottiglia delle prestazioni nei sistemi di database. Diagnostica i problemi del disco utilizzando questi metodi:
Lunghezza elevata della coda del disco
Una lunghezza della coda del disco costantemente superiore a 2 (o 2 per disco per RAID) indica che il sottosistema del disco non riesce a tenere il passo con le richieste di I/O. Ciò crea un arretrato di operazioni in sospeso.
Latenza eccessiva del disco
Valori di Media sec/lettura disco e Media sec/scrittura disco superiori a 10-20 ms indicano una risposta lenta del disco. Le unità di registro delle transazioni richiedono prestazioni particolarmente elevate, idealmente inferiori a 5 ms per le scritture.
Alta % Tempo su disco
Un utilizzo prolungato del disco superiore all'85% indica saturazione del disco. Il disco trascorre la maggior parte del tempo elaborando richieste di I/O, con poca capacità disponibile inutilizzata.
Prima di affrontare i problemi del disco, verifica che non siano sintomi di problemi di memoria. Una memoria insufficiente forza SQL Server per leggere più dati dal disco, gonfiando artificialmente le metriche del disco.
Per risolvere i problemi di I/O del disco originali:
- Passa a dischi più veloci (SSD invece di HDD)
- Implementare configurazioni RAID per prestazioni migliori
- Separare i file di database, i registri delle transazioni e tempdb su unità fisiche diverse
- Aggiungere più memoria per ridurre le letture del disco
- Ottimizzare gli indici per ridurre l'I/O non necessario
- Esaminare e ottimizzare le query con prestazioni scarse
10.4 Indirizzamento di blocchi e deadlock
Il blocco si verifica quando una sessione mantiene blocchi che impediscono ad altre sessioni di procedere. Monitora questi contatori per identificare problemi di blocco:
- Processi bloccati: Dovrebbe essere idealmente 0
- Attese di blocco/sec: Numero di richieste di blocco che richiedono attese
- Tempo medio di attesa: Durata media delle attese di blocco
Per indagare sul blocco:
- Apri Activity Monitor in SSMS
- espandere la Processi pagina
- Cerca processi con valori diversi da zero Bloccato da valori
- Identificare l'ID della sessione di blocco
- Esaminare le query che causano il blocco
Utilizzare sp_WhoIsActive per un'analisi più dettagliata dei blocchi. Un numero eccessivo di voci wait_info spesso indica problemi di contesa o blocco di tempdb.
Per ridurre i blocchi:
- Ridurre al minimo la durata della transazione
- Utilizzare livelli di isolamento appropriati
- Aggiungere indici per ridurre la durata del blocco
- Considerare l'isolamento READ_COMMITTED_SNAPSHOT
- Esaminare e ottimizzare le query di lunga durata
10.5 Problemi di prestazioni delle query
Identificare le query costose è essenziale per il monitoraggio delle prestazioni di SQL. Utilizza questi metodi per individuare le query problematiche:
Utilizzo di Activity Monitor
- In SSMS, fare clic con il pulsante destro del mouse sul nome del server
- Seleziona Activity Monitor
- Espandere Query costose recenti
- Esamina le query con CPU elevata, durata o letture logiche
Utilizzo dei DMV
Eseguire una query su sys.dm_exec_query_stats per identificare le query che richiedono molte risorse:
SELECT TOP 50
total_worker_time/execution_count AS avg_cpu_time,
total_logical_reads/execution_count AS avg_logical_reads,
execution_count,
SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC
Analisi dei piani di esecuzione
- In SSMS, apri una nuova finestra di query
- Clicchi Visualizza il piano di esecuzione stimato (Ctrl+L) o Includere il piano di esecuzione effettivo (Ctrl+M)
- Esegui la tua query
- Rivedere il piano di esecuzione per le operazioni costose
- Cerca scansioni di tabelle, scansioni di indici o operazioni ad alto costo
Ottimizza le query:
- Aggiunta di indici appropriati
- Riscrivere le query per evitare operazioni costose
- Aggiornamento delle statistiche
- Utilizzo di nomi di colonna specifici anziché SELECT *
- Evitare clausole DISTINCT o ORDER BY non necessarie
10.6 Rileva e correggi database corrotti
Il danneggiamento del database può causare degrado delle prestazioni, perdita di dati e guasti del sistema. Rilevare e risolvere rapidamente i problemi di danneggiamento è fondamentale per preservare l'integrità del database.
Indicatori di corruzione del database
Fai attenzione a questi segnali di potenziale corruzione:
- Messaggi di errore in SQL Server registro degli errori (errore 823, 824 o 825)
- Errori imprevisti dell'applicazione durante l'accesso a tabelle specifiche
- Prestazioni di query lente su query precedentemente veloci
- SQL Server arresti anomali o riavvii imprevisti
- Pagine sospette che compaiono nella tabella msdb.dbo.suspect_pages
Utilizzo di DBCC CHECKDB per il rilevamento
DBCC CHECKDB è lo strumento principale per rilevare la corruzione del database. Eseguilo regolarmente per individuare tempestivamente i problemi.
Monitoraggio delle pagine sospette
SQL Server registra automaticamente le pagine sospette nel database msdb:
SELECT
database_id,
file_id,
page_id,
event_type,
error_count,
last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)
Tutte le righe restituite indicano problemi di danneggiamento che richiedono attenzione immediata.
Strategie di prevenzione della corruzione
- Abilita la verifica della pagina con l'opzione CHECKSUM
- Mantenere backup regolari del database
- Utilizzare hardware affidabile con correzione degli errori
- Monitorare lo stato del disco utilizzando gli strumenti del produttore
- Pianificare esecuzioni regolari di DBCC CHECKDB
- mantenere SQL Server aggiornato con le ultime patch
Opzioni di ripristino e riparazione
Se vengono rilevati dei danneggiamenti, puoi provare lo strumento integrato DBCC CHECKDB per risolverli. Se fallisce, utilizzare strumenti di terze parti come DataNumen SQL Recovery che può far fronte a gravi corruzioni.
11. Tecniche di monitoraggio avanzate
11.1 Monitoraggio dell'archivio query
Query Store, introdotto in SQL Server 2016, acquisisce automaticamente i dati sulle prestazioni delle query. Fornisce informazioni preziose sul comportamento delle query, sui piani di esecuzione e sulle tendenze delle prestazioni.
Abilitazione di Query Store
- In SSMS Object Explorer, fare clic con il pulsante destro del mouse su un database
- Seleziona Proprietà a Confronto
- Clicca su QueryStore pagina
- In Modalità operativa (richiesto), selezionare Leggi scrivi
- Configurare impostazioni aggiuntive secondo necessità
- Clicchi OK
Monitoraggio delle prestazioni delle query
Accedi ai report di Query Store tramite Object Explorer:
- Espandi il database in Esplora oggetti
- Espandere QueryStore
- Seleziona tra i report disponibili:
- Query regredite
- Consumo complessivo delle risorse
- Query che consumano più risorse
- Query con piani forzati
- Query tracciate
Rilevamento della regressione del piano
Query Store rileva automaticamente quando i piani di esecuzione delle query cambiano e le prestazioni peggiorano. Esamina il report Query regredite per identificare le query interessate dalle modifiche al piano.
Gestione del piano forzato
Quando Query Store identifica un piano di esecuzione migliore, forza SQL Server per utilizzarlo:
- Apri la query in Query Store
- Fare clic con il pulsante destro del mouse sul piano desiderato
- Seleziona Piano di forza
Ciò migliora immediatamente le prestazioni senza richiedere modifiche al codice.
11.2 Monitoraggio della manutenzione dell'indice
La frammentazione degli indici riduce le prestazioni delle query nel tempo. Monitorare e gestire regolarmente gli indici per garantire prestazioni ottimali.
Controllo della frammentazione
Utilizzare questa query per verificare la frammentazione dell'indice:
SELECT
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
ps.avg_fragmentation_in_percent,
ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC
Eseguire questa query durante le ore non di punta, poiché potrebbe richiedere molte risorse.
Analisi della densità della pagina
La densità di pagina indica quanto sono piene le pagine indice. Una densità bassa spreca spazio e riduce le prestazioni:
SELECT
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75
Decisioni di riorganizzazione vs ricostruzione
Scegliere le operazioni di manutenzione dell'indice in base ai livelli di frammentazione:
- Frammentazione 10-30%: utilizzare ALTER INDEX REORGANIZE
- Frammentazione > 30%: utilizzare ALTER INDEX REBUILD
- Frammentazione < 10%: nessuna azione necessaria
Le operazioni di riorganizzazione richiedono meno risorse e possono essere eseguite online. Le operazioni di ricostruzione sono più approfondite, ma consumano risorse significative.
11.3 Aggiornamenti delle statistiche del database
Aiuto con le statistiche del database SQL ServerL'ottimizzatore di query di crea piani di esecuzione efficienti. Statistiche obsolete causano scarse prestazioni delle query.
Ricostruzione automatica delle statistiche
Abilita gli aggiornamenti automatici delle statistiche:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Monitoraggio delle statistiche sanitarie
Controlla quando le statistiche sono state aggiornate l'ultima volta:
SELECT
OBJECT_NAME(s.object_id) AS TableName,
s.name AS StatisticsName,
STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
sp.rows,
sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated
Aggiornare manualmente le statistiche quando necessario:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Raccolta di dati sulle prestazioni personalizzati
Crea soluzioni personalizzate di monitoraggio delle prestazioni interrogando direttamente sys.dm_os_performance_counters e memorizzando i risultati nelle tabelle.
Creazione di script di raccolta personalizzati
Creare una stored procedure per raccogliere i dati del contatore delle prestazioni:
CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
INSERT INTO dbo.PerformanceHistory (
SampleTime,
CounterName,
CounterValue
)
SELECT
GETDATE(),
counter_name,
cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN (
'Page life expectancy',
'Batch Requests/sec',
'Buffer cache hit ratio'
)
END
Utilizzo di sys.dm_os_performance_counters
Interroga direttamente i contatori delle prestazioni:
SELECT
object_name,
counter_name,
instance_name,
cntr_value,
cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name
Memorizzazione dei dati storici
Crea una tabella per memorizzare le metriche delle prestazioni nel tempo:
CREATE TABLE dbo.PerformanceHistory (
ID INT IDENTITY PRIMARY KEY,
SampleTime DATETIME2 NOT NULL,
PageLifeExpectancy BIGINT,
BatchRequestsPerSec DECIMAL(18,4),
BufferCacheHitRatio DECIMAL(5,2)
)
CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory
ON dbo.PerformanceHistory
Metodi di archiviazione dei dati pivotati
Memorizzare i dati in formato pivot con una riga per ogni tempo di campionamento e una colonna per contatore. Questo riduce lo spazio di archiviazione e migliora le prestazioni delle query rispetto all'archiviazione di una riga per contatore per campione.
11.5 Monitoraggio multi-server
Per ambienti con più SQL Server istanze, implementare il monitoraggio centralizzato.
Approccio di monitoraggio centralizzato
- Creare un database di monitoraggio dedicato su un server separato
- Raccogliere i dati da tutti i server nel repository centrale
- Usa il SQL Server Lavori dell'agente per eseguire script di raccolta
- Implementare la raccolta di contatori delle prestazioni accessibili in rete
Monitoraggio del server remoto
Configura Performance Monitor per raccogliere dati da server remoti specificando i nomi dei server quando aggiungi i contatori. Assicurati che le regole del firewall consentano il traffico di Performance Monitor.
Report tra server
Crea report che confrontano le prestazioni di più server per identificare valori anomali e squilibri di capacità.
12. Monitoraggio SQL Server in ambienti cloud
12.1 Monitoraggio del database SQL di Azure
Il database SQL di Azure offre funzionalità di monitoraggio integrate che differiscono da quelle locali SQL Server.
Integrazione di Azure Monitor
Azure Monitor raccoglie automaticamente le metriche dal database SQL di Azure, tra cui:
- Utilizzo DTU o vCore
- Utilizzo dello storage
- Statistiche di connessione
- Stalli e timeout
È possibile accedere a queste metriche tramite il portale di Azure o l'API di Azure Monitor.
Funzionalità di monitoraggio integrate
Il database SQL di Azure include:
- Raccomandazioni di sintonizzazione automatica
- Informazioni sulle prestazioni delle query
- Informazioni intelligenti per il rilevamento delle anomalie
- Sistema di allerta e diagnostica integrato
Informazioni sulle prestazioni delle query
Questa funzionalità fornisce la visualizzazione delle query che consumano più risorse, l'analisi della durata delle query e l'andamento storico delle prestazioni. È possibile accedervi tramite il portale di Azure, nella risorsa del database SQL.
12.2 Strumenti di monitoraggio nativi del cloud
Le piattaforme cloud offrono soluzioni di monitoraggio native ottimizzate per i loro ambienti:
- Azure Monitor e Application Insights per il database SQL di Azure
- AWS CloudWatch per RDS SQL Server
- Monitoraggio di Google Cloud per il cloud SQL Server
Questi strumenti si integrano perfettamente con l'infrastruttura cloud e forniscono un monitoraggio unificato di tutte le risorse cloud.
Monitoraggio dell'ambiente ibrido
Per le distribuzioni ibride che abbracciano sia l'ambiente locale che quello cloud, utilizza strumenti che supportano entrambi gli ambienti, come Redgate SQL Monitor, SolarWinds DPA o soluzioni personalizzate che utilizzano la raccolta centralizzata dei dati.
12.3 Differenze di prestazioni nel cloud
Cloud SQL Server gli ambienti hanno caratteristiche uniche:
Modelli di allocazione delle risorse
I provider cloud utilizzano diversi metodi di allocazione delle risorse (DTU, vCore, serverless) che influiscono sull'interpretazione delle metriche prestazionali. È importante comprendere i limiti e le caratteristiche del proprio livello di servizio.
Considerazioni sulla scalabilità
Gli ambienti cloud offrono funzionalità di scalabilità dinamica. Monitora l'utilizzo delle risorse per determinare quando aumentare o diminuire la scalabilità. Molte piattaforme cloud offrono una scalabilità automatica in base a soglie di prestazioni.
13. Automazione del monitoraggio delle prestazioni
13.1 SQL Server Lavori da agente
Automatizzare la raccolta dati utilizzando SQL Server Lavori dell'agente per un monitoraggio coerente senza intervento manuale.
Raccolta dati pianificata
- In SSMS, espandere SQL Server Agente
- Fare clic con Offerte di lavoro e seleziona Nuovo lavoro
- Assegna un nome al lavoro (ad esempio, "Raccogli metriche sulle prestazioni")
- Clicchi Passaggi e aggiungi un nuovo passaggio
- Imposta Tipo su Script Transact-SQL
- Inserisci il tuo script di raccolta dati
- Clicchi Orari e aggiungi un programma
- Configura la frequenza (ad esempio, ogni 5 minuti)
- Clicchi OK per creare il lavoro
Reporting automatizzato
Crea lavori che generano e inviano via e-mail report sulle prestazioni:
- Creare una stored procedure che genera report
- Utilizzare Database Mail per inviare report via e-mail
- Pianifica l'esecuzione del lavoro su base giornaliera o settimanale
13.2 Automazione di PowerShell
PowerShell fornisce potenti funzionalità di automazione per SQL Server monitoraggio delle prestazioni.
Script di raccolta dei contatori delle prestazioni
$counters = @(
'\Processor(_Total)\% Processor Time',
'\Memory\Available MBytes',
'\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)
$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append
Query WMI
Utilizzare WMI per raccogliere dati sulle prestazioni da server remoti:
$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01' $memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01' Write-Host "CPU Usage: $($cpu.LoadPercentage)%" Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"
Avvisi automatici
Crea script di PowerShell che controllano le metriche e inviano avvisi quando vengono superate le soglie:
$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
if ($cpu -gt $cpuThreshold) {
Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
-Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}
13.3 Creazione di dashboard di monitoraggio
Visualizza i dati sulle prestazioni con dashboard interattive per ottenere informazioni più approfondite.
Integrazione di PowerBI
- Collega Power BI alle tabelle dei dati sulle prestazioni
- Crea visualizzazioni per metriche chiave
- Aggiungere slicer per la selezione dell'intervallo di tempo e del server
- Pubblicare dashboard nel servizio Power BI
- Configurare le pianificazioni di aggiornamento automatico
Creazione di dashboard in tempo reale
Utilizza strumenti come Grafana o applicazioni web personalizzate per creare dashboard in tempo reale che interrogano direttamente i DMV e i contatori delle prestazioni.
Visualizzazione delle tendenze storiche
Crea grafici lineari che mostrano le tendenze nel tempo per:
- Utilizzo della CPU
- Utilizzo della memoria
- Disk I / O
- Prestazioni di query
- Conteggio delle connessioni
14. Casi di studio ed esempi pratici
14.1 Caso di studio: risoluzione della pressione della memoria
Identificazione dei sintomi
Una produzione SQL Server hanno riscontrato tempi di risposta lenti alle query durante le ore di punta. Gli utenti hanno lamentato timeout delle applicazioni e prestazioni ridotte.
Controanalisi
I dati del Performance Monitor hanno rivelato:
- L'aspettativa di vita della pagina è scesa a 50 secondi (normale: >300)
- Il rapporto di hit della cache buffer è sceso all'85% (normale: >99%)
- Le concessioni di memoria in sospeso hanno mostrato spesso valori di 5-10
- Letture su disco fisico/sec aumentate in modo significativo
Passaggi di risoluzione
- Verificato SQL Server impostazione massima della memoria: ho scoperto che era impostata su predefinita (illimitata)
- Analisi della memoria totale del server rispetto alla memoria target del server: è emerso un divario significativo
- Memoria massima del server configurata per lasciare 8 GB per il sistema operativo
- Abilitato il permesso "Blocca pagine in memoria" per SQL Server account di servizio
- Aggiunti 32 GB di RAM aggiuntiva al server
- Prestazioni monitorate per una settimana: la durata della pagina si è stabilizzata sopra i 500 secondi
Risultato: I tempi di risposta alle query sono migliorati del 60%, i reclami degli utenti sono cessati e le prestazioni dell'applicazione sono tornate alla normalità.
14.2 Caso di studio: ottimizzazione delle prestazioni della CPU
Identificazione dei sintomi
A SQL Server ha mostrato costantemente un utilizzo della CPU superiore al 90% durante l'orario lavorativo, causando prestazioni lente delle applicazioni e frustrazione degli utenti.
Controanalisi
Il monitoraggio delle prestazioni ha rivelato:
- % Tempo di elaborazione medio del 92% con picchi frequenti fino al 100%
- Lunghezza della coda del processore costantemente superiore a 4 (il server aveva 8 core)
- Le compilazioni SQL/sec erano il 25% delle richieste batch/sec (dovrebbero essere <10%)
- Le ricompilazioni SQL/sec erano il 15% delle richieste batch/sec
Passaggi di risoluzione
- Utilizzato DMV per identificare le query che consumano più CPU
- Piani di esecuzione analizzati per le query identificate
- Sono state rilevate più scansioni di tabelle su tabelle di grandi dimensioni a causa di indici mancanti
- Creati indici appropriati in base alle raccomandazioni del piano di esecuzione
- Identificato SQL dinamico che causava compilazioni eccessive
- Codice applicativo modificato per utilizzare query parametriche
- Guida al piano implementata per procedure archiviate problematiche
- Statistiche aggiornate sulle tabelle più utilizzate
Risultato: L'utilizzo della CPU è sceso al 45% in media durante l'orario lavorativo. I tempi di esecuzione delle query sono migliorati del 70%. La reattività delle applicazioni è notevolmente migliorata.
14.3 Caso di studio: risoluzione del collo di bottiglia dell'I/O del disco
Identificazione dei sintomi
Gli utenti hanno segnalato una risposta estremamente lenta dell'applicazione durante le operazioni di caricamento dei dati e l'elaborazione batch serale.
Controanalisi
I dati sulle prestazioni hanno mostrato:
- La durata media di scrittura su disco ha superato i 45 ms sull'unità del registro delle transazioni
- Lunghezza media della coda del disco pari a 12 sull'unità dei file di dati
- % Il tempo su disco è rimasto superiore al 95% per ore durante i processi batch
- Le scritture di pagine/sec erano eccezionalmente alte
Passaggi di risoluzione
- Le impostazioni di memoria verificate erano appropriate: non sono stati rilevati problemi di memoria
- Configurazione del disco analizzata: rilevati tutti i file sullo stesso set di spindle
- Registri delle transazioni separati su unità SSD veloci dedicate
- Spostato tempdb su unità SSD separate
- Implementati più file di dati tempdb (uno per core)
- Unità di file dati aggiornate alla configurazione SSD RAID 10
- Lavori batch ottimizzati per utilizzare batch di transazioni più piccoli
- Aggiunti indici per ridurre le scansioni di tabella non necessarie durante le operazioni batch
Risultato: La media dei secondi/scritture su disco è scesa a 3 ms. La lunghezza media della coda del disco è stata inferiore a 1. Il tempo di completamento dei processi batch è stato ridotto del 75%.
15. Tendenze future in SQL Server Controllo
15.1 Integrazione di intelligenza artificiale e apprendimento automatico
L'intelligenza artificiale e l'apprendimento automatico stanno trasformando SQL Server monitoraggio delle prestazioni.
Predictive Analytics
I modelli di apprendimento automatico prevedono il fabbisogno futuro di risorse sulla base di dati storici. Questi sistemi possono prevedere:
- Quando la capacità di archiviazione sarà esaurita
- Requisiti previsti di CPU e memoria durante i periodi di picco
- Degrado delle prestazioni delle query prima che abbia un impatto sugli utenti
- Tempi ottimali per le operazioni di manutenzione
Anomaly Detection
Gli strumenti basati sull'intelligenza artificiale rilevano automaticamente modelli insoliti nelle metriche delle prestazioni. Identificano anomalie che potrebbero sfuggire agli amministratori umani e distinguono tra variazioni normali e problemi reali.
Risanamento automatizzato
I sistemi di auto-riparazione risolvono automaticamente i problemi più comuni quando vengono rilevati:
- Riavvia i servizi che si sono interrotti
- Riallocare le risorse durante il carico di picco
- Applica hotfix per problemi noti
- Ricostruisci automaticamente gli indici frammentati
15.2 Evoluzione del monitoraggio basato su cloud
Il monitoraggio del cloud continua a evolversi con nuove funzionalità.
Piattaforme di monitoraggio unificate
Le piattaforme moderne forniscono una visibilità unificata su:
- Locale SQL Server istanze
- Database ospitati nel cloud
- Ambienti ibridi
- le prestazioni delle applicazioni
- Metriche dell'infrastruttura
Tendenze di osservabilità
Il passaggio dal monitoraggio all'osservabilità sottolinea:
- Comprensione del comportamento del sistema dagli output
- Correlazione di metriche, registri e tracce
- Approfondimenti sui sistemi distribuiti
- Diagnosi dei problemi in tempo reale
15.3 Sistemi di database auto-riparanti
Futuro SQL Server le versioni includeranno maggiori capacità autonome.
Ottimizzazione automatica
I database si ottimizzeranno costantemente:
- Creazione ed eliminazione automatica degli indici in base al carico di lavoro
- Regolazione delle impostazioni di configurazione per prestazioni ottimali
- Riscrivere le query inefficienti in modo trasparente
- Gestione dinamica dell'allocazione delle risorse
Sintonizzazione intelligente
I sistemi avanzati impareranno dai modelli di prestazioni e applicheranno automaticamente i consigli di ottimizzazione, riducendo la necessità di intervento manuale da parte dell'amministratore del database.
16. Conclusione e punti chiave
16.1 Riepilogo delle pratiche di monitoraggio essenziali
Efficace SQL Server Il monitoraggio delle prestazioni richiede un approccio completo che combini strumenti, tecniche e best practice.
Riepilogo dei contatori critici
Concentrare gli sforzi di monitoraggio su questi contatori essenziali:
- Memoria: aspettativa di vita della pagina, rapporto di utilizzo della cache buffer, concessioni di memoria in sospeso
- CPU: % Tempo processore, Lunghezza coda processore
- Disco: Media secondi/lettura e scrittura disco, lunghezza coda disco
- SQL Server: Richieste batch/sec, Compilazioni/sec, Connessioni utente
Riepilogo delle migliori pratiche
- Stabilire le linee di base durante le normali operazioni
- Imposta soglie di avviso intelligenti in base alle linee di base
- Rivedere regolarmente i dati sulle prestazioni
- Monitoraggio del bilanciamento del sovraccarico con granularità dei dati
- Conservare i dati a lungo termine per l'analisi delle tendenze
- Utilizzare strumenti appropriati per ogni scenario di monitoraggio
16.2 Approccio al miglioramento continuo
SQL Server Il monitoraggio delle prestazioni non è un'attività una tantum, ma un processo continuo che richiede un continuo perfezionamento.
Cicli di revisione regolari
- Giornaliero: controlla gli avvisi e le prestazioni attuali
- Settimanale: rivedere le tendenze e identificare i problemi emergenti
- Mensilmente: analizzare i modelli a lungo termine e le esigenze di capacità
- Trimestrale: aggiornare le linee di base e rivedere l'efficacia del monitoraggio
Rimanere aggiornati con gli strumenti
Mantenere aggiornati gli strumenti e le tecniche di monitoraggio:
- Valutare le nuove funzionalità di monitoraggio in SQL Server aggiornamenti
- Testare gli strumenti di terze parti emergenti
- Partecipare a corsi di formazione e conferenze
- Partecipare a SQL Server forum della comunità
- Condividi la conoscenza con i membri del team
16.3 Prossimi passi
Realizzare SQL Server monitorare sistematicamente le prestazioni:
Tabella di marcia per l'implementazione
- Settimana 1: Imposta Performance Monitor con contatori essenziali
- Settimana 2: Creare set di raccolta dati per la raccolta automatizzata
- Settimana 3: Stabilire le linee di base durante le normali operazioni
- Settimana 4: Configurare gli avvisi per le soglie critiche
- Mese 2: Implementare strumenti di monitoraggio aggiuntivi (DMV, eventi estesi)
- Mese 3: Sviluppa dashboard e report personalizzati
- In corso: Affinare il monitoraggio in base all'esperienza e ai requisiti mutevoli
Risorse addizionali
Continua a conoscere SQL Server Monitoraggio delle prestazioni tramite la documentazione Microsoft, i blog della community e la pratica. Sperimenta diversi strumenti e tecniche per trovare la soluzione più adatta al tuo ambiente.
17. Domande frequenti (FAQ)
17.1 Quali sono i più importanti SQL Server contatori delle prestazioni da monitorare?
Il più critico SQL Server i contatori delle prestazioni includono:
- Memoria: aspettativa di vita della pagina (dovrebbe essere >300 secondi) e rapporto di hit della cache buffer (dovrebbe essere >99%)
- CPU: % Tempo processore (valori sostenuti <75%) e lunghezza coda processore (dovrebbe essere <2 per core)
- Disco: Media secondi/lettura e scrittura disco (dovrebbe essere <10-20 ms) e lunghezza coda disco (dovrebbe essere <2 per disco)
- SQL Server: Richieste batch/sec, Compilazioni SQL/sec e Concessioni di memoria in sospeso (dovrebbero essere 0)
Questi contatori forniscono una panoramica completa sullo stato di salute del sistema e aiutano a identificare rapidamente i colli di bottiglia.
17.2 Con quale frequenza dovrei raccogliere i dati sulle prestazioni?
La frequenza della raccolta dipende dagli obiettivi di monitoraggio:
- Monitoraggio di base: ogni 1 minuto (60 secondi)
- Risoluzione dei problemi attiva: ogni 15-30 secondi per brevi periodi
- Tendenze a lungo termine: ogni 5 minuti
Evitare di eseguire continuamente raccolte ad alta frequenza, poiché ciò può influire sulle prestazioni e generare dati eccessivi. Utilizzare intervalli più lunghi per il monitoraggio di routine e intervalli più brevi solo quando si indaga su problemi specifici.
17.3 Qual è la differenza tra Performance Monitor e SQL Server Profilatore?
Monitoraggio delle prestazioni e SQL Server I profiler servono a diversi scopi:
Performance Monitor:
- Monitora il sistema e SQL Server contatori di prestazioni
- Tiene traccia dell'utilizzo delle risorse (CPU, memoria, disco)
- Basso overhead, adatto per il monitoraggio continuo
- Fornisce metriche aggregate nel tempo
SQL Server profilatore:
- Tracce individuali SQL Server eventi e query
- Acquisisce informazioni dettagliate sull'esecuzione delle query
- Sovraccarico più elevato, non consigliato per uso continuo
- Ideale per la risoluzione di problemi specifici relativi alle query
- Obsoleto in favore di Eventi estesi
Utilizzare Performance Monitor per il monitoraggio generale del sistema ed Extended Events (non Profiler) per un'analisi dettagliata a livello di query.
17.4 Impatto del monitor delle prestazioni di Can SQL Server prestazione?
Se configurato correttamente, Performance Monitor ha un impatto minimo su SQL Server prestazioni, in genere con un overhead inferiore al 2%. Tuttavia, un monitoraggio eccessivo può causare problemi:
- Troppi contatori aumentano le spese generali
- Intervalli di campionamento molto brevi (inferiori a 15 secondi) mettono a dura prova le risorse
- La raccolta continua ad alta frequenza genera file di registro di grandi dimensioni
Per ridurre al minimo l'impatto:
- Monitorare solo i contatori necessari
- Utilizzare intervalli di campionamento appropriati (60 secondi per il monitoraggio di routine)
- Memorizzare i registri su unità separate dai file del database
- Pianificare il monitoraggio ad alta intensità di risorse durante le ore non di punta
17.5 Per quanto tempo dovrei conservare i dati di monitoraggio delle prestazioni?
La conservazione dipende dalle esigenze di analisi e dalla capacità di archiviazione:
- Minimo: 3 mesi per la risoluzione dei problemi recenti
- Consigliato: 1-2 anni per la pianificazione della capacità e l'analisi delle tendenze
- Ottimale: Indefinitamente se lo spazio di archiviazione lo consente, poiché i dati storici diventano più preziosi nel tempo
I dati dei contatori delle prestazioni si comprimono bene e occupano relativamente poco spazio. Si consiglia di archiviare i dati più vecchi in un archivio separato anziché eliminarli. Molte organizzazioni ritengono che anni di dati storici si rivelino preziosi per la pianificazione della capacità e l'identificazione di tendenze a lungo termine.
17.6 Quali sono i valori soglia validi per i contatori di prestazioni chiave?
Valori soglia consigliati per l'avviso:
- Concessioni di memoria in sospeso: avviso quando > 0
- Aspettativa di vita della pagina: avviso quando < 300 secondi
- % Tempo processore: avviso quando > 80% per 5 minuti
- Lunghezza coda processore: avviso quando > 2 per core
- Media secondi/lettura o scrittura disco: avviso quando > 20 ms
- Lunghezza coda disco: avvisa quando > 2 per disco
- Processi bloccati: avviso quando > 5
Adatta queste soglie in base ai dati di base e alle caratteristiche specifiche del carico di lavoro. Ciò che è normale in un ambiente può indicare problemi in un altro.
17.7 Come faccio a monitorare SQL Server prestazioni da remoto?
Monitor remoto SQL Server istanze che utilizzano questi metodi:
- Performance Monitor: Specificare il nome del computer remoto quando si aggiungono contatori
- PowerShell: Utilizzare il parametro -ComputerName con Get-Counter
- Motorizzazione civile: Connettersi ai server remoti tramite SSMS e interrogare i DMV
- Strumenti di terze parti: La maggior parte degli strumenti di monitoraggio supporta il monitoraggio remoto dei server.
Assicurarsi che le regole del firewall consentano il traffico di Performance Monitor e di disporre delle autorizzazioni appropriate sul server remoto. Per più server, valutare l'implementazione di un monitoraggio centralizzato con un server di monitoraggio e un database dedicati.
17.8 Qual è il miglior strumento gratuito per SQL Server monitoraggio delle prestazioni?
Sono disponibili diversi eccellenti strumenti gratuiti per il monitoraggio SQL Server prestazione:
- Monitoraggio delle prestazioni di Windows: Integrato, completo e affidabile
- Monitoraggio attività SSMS: Monitoraggio in tempo reale senza installazione aggiuntiva
- Eventi estesi: Monitoraggio degli eventi leggero integrato SQL Server
- sp_WhoIsActive: Procedura memorizzata gratuita e popolare per il monitoraggio dettagliato delle attività
- DBA Dash: Strumento di monitoraggio open source con funzionalità complete
- SQLWATCH: Open source con capacità di monitoraggio quasi in tempo reale
Per la maggior parte delle organizzazioni, Performance Monitor, in combinazione con gli strumenti SSMS e sp_WhoIsActive, offre eccellenti funzionalità di monitoraggio senza costi aggiuntivi.
17.9 Come posso esportare i dati PerfMon per l'analisi?
Esportare i dati di Performance Monitor utilizzando questi metodi:
Esporta in CSV:
- Apri Performance Monitor con il tuo file di registro caricato
- Fare clic con il tasto destro del mouse sul grafico e selezionare Salva dati come
- Scegli File di testo (delimitato da virgole) (.csv)
- Seleziona la posizione e salva
- Apri in Excel per l'analisi
Utilizzare il comando Relog:
relog input.blg -f csv -o output.csv
Questa utilità da riga di comando converte i file di registro binari (.blg) in formato CSV per un'analisi più semplice nelle applicazioni di fogli di calcolo.
17.10 Quando dovrei utilizzare strumenti di monitoraggio di terze parti invece delle opzioni integrate?
Prendi in considerazione strumenti di terze parti quando:
- Gestire un gran numero di SQL Server istanze (10+)
- Richiede un monitoraggio centralizzato su più data center
- Necessità di funzionalità avanzate come analisi predittiva o rilevamento delle anomalie
- Desiderio di un sistema di allerta integrato con i sistemi di gestione degli incidenti
- Richiedere report di conformità e analisi storiche
- Mancanza di risorse DBA per creare e gestire soluzioni personalizzate
- Monitoraggio di ambienti di database eterogenei (SQL Server(Oracle, MySQL, ecc.)
Gli strumenti integrati sono ideali per ambienti più piccoli o quando si dispone di DBA qualificati in grado di sviluppare soluzioni di monitoraggio personalizzate. Gli strumenti di terze parti offrono valore aggiunto grazie al risparmio di tempo, alle funzionalità avanzate e al supporto professionale.
18. Risorse aggiuntive
18.1 Documentazione ufficiale
Microsoft fornisce una documentazione completa per SQL Server monitoraggio delle prestazioni:
- SQL Server Documentazione di Performance Monitor: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Viste di gestione dinamica: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Eventi estesi: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Archivio query: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Ottimizzazione e monitoraggio delle prestazioni: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Strumenti e download consigliati
Strumenti essenziali per SQL Server monitoraggio delle prestazioni:
- Strumento PAL: https://github.com/clinthuffman/PAL
- sp_WhoIsActive: http://whoisactive.com/
- DBA Dash: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- Kit di primo soccorso (Brent Ozar): https://www.brentozar.com/first-aid/
- SQL Server Studio di direzione: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
18.3 Risorse della comunità
Impara dal SQL Server Comunità:
- SQL Server Central: https://www.sqlservercentral.com/
- Blog di Brent Ozar: https://www.brentozar.com/blog/
- SQL Shack: https://www.sqlshack.com/
- Suggerimenti MSSQL: https://www.mssqltips.com/
- Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
- Stack Overflow SQL Server etichetta: https://stackoverflow.com/questions/tagged/sql-server
Queste risorse forniscono tutorial, consigli per la risoluzione dei problemi e best practice da parte di esperti SQL Server professionisti. Partecipare ai forum della community ti aiuta a imparare dalle esperienze degli altri e a condividere le tue conoscenze.
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.





























