1. introduzione
1.1 Che cos'è SQL Server Monitoraggio attività?
SQL Server Activity Monitor è una diagnostica integrataoststrumento ic all'interno SQL Server Management Studio che visualizza informazioni su SQL Server processi e il loro effetto sulle prestazioni del server. Consente di monitorare SQL Server processi, monitorare le attese delle risorse, analizzare query costose e osservare modelli di I/O, il tutto da un'unica interfaccia.
1.2 Perché usare SQL Server Monitoraggio attività?
Activity Monitor funge da prima linea di difesa per la risoluzione dei problemi di prestazioni. Fornisce visibilità immediata su ciò che accade sul tuo SQL Server istanza senza richiedere complesse query T-SQL o strumenti di terze parti.
Lo strumento è eccellente nell'aiutare a identificare rapidamente problemi comuni come sessioni bloccate, query che richiedono un uso intensivo della CPU, esecuzioni di query eccessive e colli di bottiglia I/O. Quando gli utenti segnalano che un'applicazione è lenta o non risponde, Activity Monitor aiuta a determinare se il problema è dovuto al server del database.
Per gli amministratori di database che non lavorano con SQL Server Ogni giorno, Activity Monitor offre un punto di ingresso accessibile per comprendere l'attività del server. Anche gli amministratori di database esperti lo usano come strumentotarpunto di riferimento per le indagini sulle prestazioni.
1.3 Activity Monitor vs altri strumenti di monitoraggio
Sebbene Activity Monitor sia utile, è importante capire come si confronta con altre opzioni di monitoraggio:
Monitoraggio attività vs sp_WhoIsActive: Activity Monitor fornisce un'interfaccia grafica con più riquadri, mentre sp_WhoIsActive è una stored procedure completa che offre informazioni più dettagliate in un unico set di risultati. sp_WhoIsActive mostra tipi di attesa specifici che Activity Monitor raggruppa e fornisce informazioni di blocco più granulari.
Monitoraggio attività vs sp_who2: Il comando tradizionale sp_who2 mostra le informazioni di base sulla sessione, ma Activity Monitor va oltre visualizzando statistiche di attesa, query costose e metriche I/O in un formato visivo organizzato.
Monitoraggio attività vs strumenti di terze parti: Soluzioni di monitoraggio commerciali come SolarWinds Database Performance Analyzer offrono monitoraggio storico, avvisi e analisi avanzate, funzionalità che Activity Monitor non offre. Tuttavia, Activity Monitor non richiede alcun costo aggiuntivo.ost o installazione.
1.4 Principali vantaggi per gli amministratori di database
Activity Monitor offre diversi vantaggi che lo rendono uno strumento essenziale per gli amministratori di database:
- ZeroCost: Come integrato SQL Server Grazie alla funzionalità Management Studio, non sono richiesti costi di licenza o sforzi di distribuzione.
- Monitoraggio in tempo reale: Visualizza l'attività corrente del server in tempo reale, con intervalli di aggiornamento configurabili da 1 secondo a 1 ora.
- Azioni integrate: Fare clic con il pulsante destro del mouse sui processi per terminare le sessioni, visualizzare i dettagli delle query o avviarli SQL Server Tracce del profiler: tutto dall'interno dello strumento.
- Prospettive multiple: Visualizza lo stato di salute del server da diverse angolazioni attraverso cinque riquadri specializzati, ognuno dei quali si concentra su aspetti specifici delle prestazioni.
- Risoluzione rapida dei problemi: Identificare il most problemi di prestazioni comuni in pochi minuti, accelerando il tempo medio di risoluzione.
- Bassa barriera all'ingresso: Non sono richieste conoscenze avanzate per iniziare a utilizzare lo strumento in modo efficace, anche se più approfondite SQL Server la competenza aiuta nell'interpretazione.
2. Ottenere Starcon Activity Monitor
Prima di poter sfruttare Activity Monitor in modo efficace, è necessario comprendere i prerequisiti, le autorizzazioni richieste e i vari metodi per avviare lo strumento.
2.1 Prerequisiti e requisiti di sistema
Per utilizzare SQL Server Activity Monitor, di cui hai bisogno SQL Server Management Studio (SSMS) installato sul computer locale o su un jump server. Lo strumento Activity Monitor è stato notevolmente riprogettato in SQL Server 2008, quindi le informazioni contenute in questa guida si applicano a SQL Server Versioni del 2008 e successive.
È necessario disporre di connettività di rete per SQL Server istanza che si desidera monitorare. Per cloud-hostdatabase, in genere avrai bisogno di una connessione VPN o di regole firewall configurate correttamente per accedere all'istanza.
Activity Monitor funziona con tutte le edizioni di SQL Server, inclusi Express, Standard ed Enterprise. Lo strumento stesso viene eseguito sul computer client all'interno di SSMS, quindi le risorse del server sono influenzate solo dalle query di monitoraggio che esegue.
2.2 Autorizzazioni richieste
Per il corretto funzionamento di Monitoraggio Attività è essenziale disporre delle autorizzazioni appropriate. Senza i diritti appropriati, potresti visualizzare una schermata vuota o ricevere errori di accesso negato.
2.2.1 Autorizzazione VISUALIZZA STATO DEL SERVER
Migliori VISUALIZZA LO STATO DEL SERVER L'autorizzazione è il requisito principale per l'utilizzo di Activity Monitor. Questa autorizzazione a livello di server consente di visualizzare tutti i processi attivi e le relative metriche.
Per concedere questa autorizzazione, un amministratore del server può eseguire:
GRANT VIEW SERVER STATE TO [YourLoginName];
Senza VIEW SERVER STATE, Activity Monitor potrebbe aprirsi ma non visualizzare alcun dato in nessuno dei suoi riquadri.
2.2.2 Autorizzazioni a livello di database
Per visualizzare le informazioni nel riquadro I/O del file di dati, sono necessarie autorizzazioni aggiuntive. In particolare, è necessario disporre di una delle seguenti combinazioni:
- CREA DATABASE permesso, o
- MODIFICARE QUALSIASI DATABASE permesso, o
- VISUALIZZA QUALSIASI DEFINIZIONE autorizzazione
Questi permessi devono essere combinati con VISUALIZZA LO STATO DEL SERVER per la piena funzionalità di Activity Monitor.
2.2.3 Risoluzione dei problemi relativi ai permessi
Se Activity Monitor si apre ma non mostra dati, le autorizzazioni sono most Causa comune. Verifica che il tuo login abbia l'autorizzazione VIEW SERVER STATE a livello di server. Puoi verificare i tuoi permessi eseguendo:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
Cerca "VIEW SERVER STATE" nella colonna permission_name. Se manca, contatta l'amministratore del database per richiederne la concessione.
2.3 Come aprire Activity Monitor in SSMS
SQL Server Management Studio offre quattro metodi diversi per avviare Activity Monitor, offrendoti flessibilità in base alle tue preferenze di flusso di lavoro.
2.3.1 Metodo 1: dalla barra degli strumenti
Il modo più rapido per aprire Activity Monitor è utilizzare l'icona della barra degli strumenti:
- Collegati al tuo SQL Server esempio in SQL Server Studio di gestione.
- Individua l'icona Activity Monitor nella barra degli strumenti standard (assomiglia a un grafico a barre con un pulsante di riproduzione verde).
- Fare clic sull'icona per avviare Activity Monitor.
Questo metodo è più rapido quando si lavora già in SSMS e si ha bisogno di controllare rapidamente l'attività del server.
2.3.2 Metodo 2: da Esplora oggetti
È anche possibile avviare Activity Monitor direttamente da Object Explorer:
- In Esplora oggetti, individuare SQL Server istanza che si desidera monitorare.
- Fare clic con il pulsante destro del mouse sul nome dell'istanza.
- Seleziona Activity Monitor dal menu di scelta rapida.
Questo metodo è utile quando ci si connette a più server, poiché garantisce il monitoraggio dell'istanza corretta.
2.3.3 Metodo 3: Utilizzo della scorciatoia da tastiera
Per gli utenti che utilizzano la tastiera, SQL Server Management Studio fornisce una scorciatoia dedicata:
- Assicurati che SSMS sia la finestra attiva e che tu sia connesso a un'istanza.
- Stampa Ctrl + altro + A.
- Activity Monitor si aprirà per l'istanza attualmente selezionata in Esplora oggetti.
Tieni presente che Activity Monitor si connetterà a qualsiasi istanza del server selezionata in Esplora oggetti, quindi assicurati di aver selezionato l'istanza corretta prima di utilizzare questa scorciatoia.
2.3.4 Metodo 4: Dal menu Opzioni (StarConfigurazione tup)
Se utilizzi frequentemente Activity Monitor, puoi configurare SSMS in modo che venga avviato automaticamente ogni volta che lo desideri.tarnell'applicazione:
- In SQL Server Management Studio, vai a Strumenti -> Opzioni.
- Nella finestra di dialogo Opzioni, espandere Ambiente, Quindi selezionare Startup.
- Dal A startubo elenco a discesa, selezionare Apri Esplora oggetti e Monitoraggio attività.
- Seleziona OK.
La prossima volta che avvierai SSMS e ti connetterai a un server, Activity Monitor si aprirà automaticamente insieme a Object Explorer.
3. Informazioni sui riquadri di Monitoraggio attività
Activity Monitor organizza le informazioni in cinque riquadri espandibili, ognuno dei quali offre una prospettiva diversa sull'attività del server. Comprendere cosa visualizza ogni riquadro è fondamentale per una risoluzione efficace dei problemi.
3.1 Riquadro di panoramica
Il riquadro Panoramica presenta quattro grafici in tempo reale che forniscono una rapida istantanea dello stato di salute del tuo SQL Server istanza. Questi grafici si aggiornano a intervalli configurabili e aiutano a identificare a colpo d'occhio modelli anomali.
3.1.1 % Tempo di elaborazione
Questo grafico mostra la percentuale di tempo che il processore impiega nell'esecuzione di thread non inattivi per SQL Server istanza su tutte le CPU. Il valore rappresenta SQL Serverl'utilizzo del processore, non l'utilizzo della CPU dell'intero server.
Se il tempo di elaborazione è costantemente pari o vicino al 100%, il server è limitato alla CPU. Ciò potrebbe indicare query inefficienti, indici mancanti o capacità hardware insufficiente. Utilizza il riquadro "Query costose recenti" per identificare quali query stanno consumando la CPU.ost PROCESSORE.
3.1.2 Attività in attesa
Questa metrica mostra il numero di attività in attesa che le risorse vengano rilasciate prima di poter procedere. Le attività possono attendere CPU, I/O, memoria o blocchi.
Un numero costantemente elevato di attività in attesa indica una contesa di risorse. Il riquadro Attese Risorse fornisce maggiori dettagli sui tipi di risorse che causano attese.
3.1.3 I/O del database (MB/s)
Questo grafico mostra la velocità di trasferimento dati tra memoria e disco. Combina sia le letture che le scritture, misurate in megabyte al secondo.
I picchi nell'I/O del database possono indicare query che eseguono scansioni di tabelle di grandi dimensioni, attività di registrazione eccessiva o operazioni di checkpoint. Il riquadro I/O del file di dati suddivide l'attività di I/O per database e file.
3.1.4 Richieste batch/sec
Questa metrica rappresenta il numero di SQL Server batch ricevuti dall'istanza al secondo. Un batch può essere costituito da una singola istruzione o da più istruzioni inviate contemporaneamente.
Questo valore fornisce un'idea dell'attività complessiva del server. Improvvisi cali nelle richieste batch durante il normale orario lavorativo potrebbero indicare problemi di connettività delle applicazioni o problemi riscontrati dagli utenti.
3.1.5 Impostazione degli intervalli di aggiornamento
Puoi personalizzare la frequenza con cui Activity Monitor aggiorna i suoi dati:
- Fare clic con il pulsante destro del mouse in un punto qualsiasi del riquadro Panoramica.
- Seleziona Intervallo di aggiornamento.
- Scegliere un intervallo tra i valori predefiniti: 1 secondo, 5 secondi, 10 secondi (predefinito), 30 secondi, 1 minuto o 1 ora.
Impostare intervalli di aggiornamento inferiori a 10 secondi aumenta il sovraccarico di monitoraggio sul server. Per i sistemi di produzione sottoposti a carichi elevati, si consiglia di utilizzare intervalli di 30 secondi o più per ridurre al minimo l'impatto.
3.2 Riquadro Processi
Il riquadro Processi visualizza informazioni sulle sessioni attualmente in esecuzione sul tuo SQL Server istanza. Questo riquadro è essenziale per identificare chi sta facendo cosa e individuare problemi bloccanti.
3.2.1 Comprensione delle informazioni sul processo
Ogni riga nel riquadro Processi rappresenta una sessione attiva sul server. Il riquadro mostra le sessioni di tutti i database e di tutti gli utenti, offrendo una panoramica completa dell'attività del server.
Le informazioni visualizzate includono il nome di accesso, il nome dell'applicazione, hostnome, database a cui si accede e comando corrente. Questo aiuta a correlare l'attività del database con utenti o applicazioni specifici.
3.2.2 Spiegazione delle colonne chiave
La comprensione delle colonne chiave aiuta a interpretare efficacemente le informazioni sul processo:
- ID sessione: Un identificatore univoco per ogni connessione. I processi di sistema utilizzano ID di sessione negativi.
- Processo utente: Indica se si tratta di una sessione utente (Sì) o di un processo di sistema (No).
- Login: Migliori SQL Server login o account Windows associato alla sessione.
- Banca dati: Il contesto del database corrente per la sessione.
- Stato dell'attività: Mostra lo stato attuale della sessione (IN ESECUZIONE, SOSPESO, IN RIPOSO, ecc.).
- Comando: Il tipo di comando in esecuzione (SELECT, INSERT, UPDATE, ecc.).
- Applicazione: Il nome dell'applicazione che ha creato la connessione.
- Tempo di attesa: Per quanto tempo (in millisecondi) la sessione è rimasta in attesa di risorse.
- Tipo di attesa: Il tipo specifico di risorsa che la sessione è in attesa.
- Tempo CPU: Tempo totale di CPU consumato da questa sessione da quando è stata connessa.
- Utilizzo della memoria: Quantità di memoria (in KB) attualmente assegnata alla sessione.
3.2.3 Processi di filtraggio e ordinamento
Il riquadro Processi include potenti funzionalità di filtro per aiutarti a concentrarti sulle sessioni pertinenti:
- Fare clic sulla freccia a discesa in qualsiasi intestazione di colonna.
- Il filtro mostra i valori disponibili per quella colonna, inclusi Tutti, Blankse NonBlanks.
- Selezionare valori specifici per filtrare la visualizzazione solo per quelle sessioni.
Ad esempio, puoi filtrare Stato dell'attività per mostrare solo le sessioni IN ESECUZIONE o filtrare Banca Dati per visualizzare l'attività su un database specifico.
Puoi anche ordinare per colonna cliccando sulla sua intestazione. Clicca una volta per l'ordine crescente, due volte per l'ordine decrescente.
3.2.4 Identificazione delle sessioni bloccate e bloccate
Il riquadro Processi consente di identificare gli scenari di blocco in cui una sessione impedisce ad altre di procedere:
- Bloccato da: Mostra l'ID sessione della sessione che sta bloccando questa sessione. Se questa colonna contiene un valore, la sessione è in attesa di un blocco detenuto da un'altra sessione.
- Bloccante per la testa: Visualizza '1' se questa sessione sta bloccando altre sessioni ma non è bloccata. Questa è la causa principale di una catena di blocchi.
Per analizzare un problema di blocco, identifica innanzitutto il blocco principale (la sessione contrassegnata con '1' nella colonna Blocco principale), quindi esamina cosa sta facendo e decidi se lasciarlo completare o interromperlo.
3.2.5 Azioni di processo (Elimina, Dettagli, Traccia)
Activity Monitor consente di eseguire azioni sulle singole sessioni:
- Fare clic con il pulsante destro del mouse su una sessione qualsiasi nel riquadro Processi.
- Vedrai diverse opzioni:
- Dettagli: Mostra l'ultimo comando eseguito da questa sessione.
- Processo di eliminazione: Termina la sessione (usare con cautela).
- Traccia il processo in SQL Server profilatore: lancia SQL Server Profiler e filtra automaticamente per mostrare solo l'attività di questa sessione.
L'opzione Dettagli mostra il testo del comando, ma nota che questo è il ultimo comando eseguito: potrebbe non essere più in esecuzione. L'opzione Traccia è particolarmente utile quando è necessario visualizzare la sequenza completa dei comandi in esecuzione in una sessione.
3.3 Riquadro Attese Risorse
Il riquadro Attese risorse riassume le statistiche di attesa, mostrando quali tipi di risorse le sessioni sono in attesa di most frequentemente. Queste informazioni sono fondamentali per diagnosticare i colli di bottiglia delle prestazioni.
3.3.1 Comprensione delle statistiche di attesa
Quando SQL Server Se non è possibile soddisfare immediatamente una richiesta di risorse (ad esempio un blocco, tempo di CPU o memoria), l'attività richiedente entra in stato di attesa. Le statistiche di attesa tengono traccia di questi periodi di attesa e aiutano a capire in quali momenti il server sta aspettando invece di lavorare.
Il riquadro Attese Risorse raccoglie dati dalle viste di gestione dinamica del sistema come sys.dm_os_wait_stats e sys.dm_exec_requests. A ogni intervallo di aggiornamento, calcola la differenza tra lo snapshot corrente e quello precedente, mostrando la velocità di accumulo per ciascun tipo di attesa.
3.3.2 Categorie di attesa
Activity Monitor raggruppa centinaia di tipi di attesa individuali in categorie più ampie per semplificare l'interpretazione:
- CPU: Attività in attesa che il tempo della CPU diventi disponibile.
- Blocco del buffer: Attende oggetti di sincronizzazione a breve termine che proteggono l'accesso alle pagine di dati in memoria. Questa categoria include le attese di latch di pagina (PAGELATCH_*).
- Blocco: Attese causate da sessioni che mantengono blocchi di cui altre sessioni hanno bisogno.
- Memoria: Attende le concessioni di memoria necessarie per operazioni come l'ordinamento e l'hashing.
- I/O di rete: Attende l'invio di dati ai client o la ricezione di dati dai client.
- SQL CLR: Attese relative all'esecuzione di Common Language Runtime.
Sebbene questo raggruppamento semplifichi la visualizzazione, nasconde anche dettagli importanti. Ad esempio, "Buffer Latch" potrebbe raggruppare le attese PAGELATCH_SH, PAGELATCH_UP e PAGELATCH_EX, che hanno implicazioni diverse per le prestazioni.
3.3.3 Interpretazione del tempo di attesa e delle attività di attesa
Il riquadro Attese risorse mostra due metriche chiave per ogni categoria di attesa:
- Tempo di attesa cumulativo (ms): Il totale dei millisecondi accumulati durante l'intervallo di aggiornamento corrente per questa categoria di attesa.
- Attività in attesa: Numero di attività attualmente in attesa di risorse in questa categoria.
Il valore del tempo di attesa è particolarmente interessante. Se si ha un intervallo di aggiornamento di 10 secondi e si osserva un tempo di attesa di 20,000 ms per una categoria, ciò indica più attese simultanee (20,000 ms / 10,000 ms = media di 2 attese simultanee durante l'intervallo).
3.3.4 Identificazione dei colli di bottiglia delle prestazioni
Utilizzare il riquadro Attese risorse per identificare dove il server sta spendendo most tempo di attesa:
- Espandi il riquadro Attese risorse.
- Osserva le categorie di attesa che accumulano i tempi di attesa più elevati.
- Ordina per Tempo di attesa cumulativo per vedere quali risorse sono most costretto.
Le attese elevate per Buffer Latch indicano spesso contesa per le pagine di dati in memoria, il che potrebbe suggerire colli di bottiglia I/O o contesa per tempdb. Le attese elevate per Lock indicano problemi di blocco. Le attese elevate per Memory indicano concessioni di memoria insufficienti per le operazioni di query.
3.4 Riquadro I/O del file di dati
Il riquadro I/O del file di dati mostra l'attività del disco per ciascun file di database sul server, aiutandoti a identificare i colli di bottiglia di I/O e a comprendere i modelli di utilizzo del disco.
3.4.1 Comprensione delle metriche I/O
Il riquadro I/O del file di dati visualizza diverse metriche per ciascun file di database:
- Banca dati: Il nome del database.
- Tipo di file: Dati (incluse tabelle e indici) o Registro (registro delle transazioni).
- Nome logico: Il nome del file logico come definito in SQL Server.
- MB/sec in lettura: La velocità con cui i dati vengono letti da questo file.
- MB/sec scritti: La velocità con cui i dati vengono scritti in questo file.
- Tempo di risposta (ms): Tempo medio di risposta per le operazioni di I/O su questo file.
Queste metriche vengono aggiornate con la stessa frequenza del riquadro Panoramica, offrendoti visibilità in tempo reale sull'attività del disco.
3.4.2 Identificazione dei colli di bottiglia I/O
Prestare attenzione a questi schemi che indicano problemi di prestazioni I/O:
- Tempo di risposta elevato: Tempi di risposta costantemente superiori a 15-20 ms indicano sottosistemi di dischi lenti. Tempi di risposta superiori a 50 ms indicano gravi colli di bottiglia I/O.
- Carico sbilanciato: Se un file di dati mostra velocità di I/O significativamente più elevate rispetto ad altri nello stesso database, potrebbe essere utile aggiungere altri file per distribuire il carico.
- Attività Tempdb eccessiva: Elevate velocità di I/O sui file tempdb indicano spesso query che creano grandi set di risultati intermedi o che utilizzano piani di esecuzione inefficienti.
3.4.3 Analisi dei file di database
Utilizzare il riquadro I/O file di dati per comprendere come i database utilizzano le risorse del disco:
- Espandi il riquadro I/O file dati.
- Ordina per MB/sec di lettura or MB/sec scritti per identificare il most file attivi.
- Annotare tutti i file con un'attività costantemente elevata o tempi di risposta lunghi.
- Incrocia queste informazioni con il riquadro Query costose recenti per identificare quali query stanno determinando il carico di I/O.
3.5 Riquadro delle query costose recenti
Il riquadro Query costose recenti è spesso il most Riquadro utile per la risoluzione dei problemi di prestazioni delle applicazioni. Mostra le query che consumano risorse significative del server, aiutandoti a identificare opportunità di ottimizzazione.
3.5.1 Comprensione delle metriche di query
Activity Monitor visualizza diverse metriche per ogni query costosa:
- Esecuzioni/min: Quante volte è stata eseguita la query durante l'ultimo minuto.
- CPU (ms/sec): Tempo di CPU consumato da questa query al secondo.
- Letture fisiche/sec: Numero di letture del disco fisico al secondo per questa query.
- Scritture logiche/sec: Numero di scritture logiche (nella cache buffer) al secondo.
- Letture logiche/sec: Numero di letture logiche (dalla cache buffer) al secondo.
- Durata media (ms): Tempo medio di esecuzione per questa query.
- Numero di piani: Numero di piani di esecuzione nella cache per questa query.
Queste metriche ti aiutano a capire non solo quali query sono costose, ma perché sono costosi e con quale frequenza vengono eseguiti.
3.5.2 Opzioni di ordinamento
È possibile ordinare il riquadro Query costose recenti in base a diverse metriche per individuare diversi tipi di problemi:
- Fare clic su un'intestazione di colonna per ordinare in base a tale metrica.
- Le strategie di ordinamento più comuni includono:
- Ordina per CPU: Trova query che consumano most tempo di elaborazione.
- Ordina per Esecuzioni/min: Identifica le query eseguite con una frequenza eccessiva.
- Ordina per letture fisiche: Trova le query che causano most I/O del disco.
- Ordina per durata media: Individuare le query di lunga durata.
Quando si cerca di risolvere un problema di prestazioni, provare a ordinare i dati in base a più colonne per ottenere prospettive diverse. Una query con un utilizzo moderato della CPU ma con un numero di esecuzioni al minuto estremamente elevato potrebbe essere il vero problema.
3.5.3 Visualizzazione del testo della query
Per visualizzare l'istruzione SQL effettiva dietro una query costosa:
- Fare clic con il pulsante destro del mouse sulla riga della query nel riquadro Query costose recenti.
- Seleziona Modifica testo query.
- Si apre una nuova finestra di query che visualizza l'istruzione SQL completa.
Ciò consente di esaminare la logica della query e identificare potenziali opportunità di ottimizzazione. È quindi possibile copiare il testo della query per testare le versioni modificate.
3.5.4 Analisi dei piani di esecuzione
I piani di esecuzione ti mostrano come SQL Server esegue una query, rivelando inefficienze come indici mancanti o tipi di join inappropriati:
- Fare clic con il pulsante destro del mouse sulla riga della query nel riquadro Query costose recenti.
- Seleziona Mostra piano di esecuzione.
- SQL Server Management Studio visualizza una rappresentazione grafica del modo in cui viene eseguita la query.
Cercare operazioni che consumano grandi percentuali della query cost, avvisi su statistiche o indici mancanti e operazioni di scansione delle tabelle inaspettate. Questi spesso indicano dove concentrare gli sforzi di ottimizzazione.
3.5.5 Identificazione delle query problematiche
Prestare attenzione a questi modelli nel riquadro Query costose recenti:
- Esecuzioni eccessive: Una query eseguita migliaia di volte al minuto potrebbe indicare un problema di query N+1 in cui il codice dell'applicazione chiama il database all'interno di un ciclo.
- Valori fisici elevati: Le query con elevate velocità di lettura fisica raggiungono frequentemente il disco, il che suggerisce la mancanza di indici o la presenza di query scritte male.
- CPU elevata con durata ridotta: Molte query veloci che consumano molta CPU nel complesso possono avere un impatto sulle prestazioni del server tanto quanto poche query lente.
- Conteggi di piani multipli: Le query con molti piani di esecuzione potrebbero presentare problemi di sniffing dei parametri o query non parametrizzate che causano un sovraccarico della cache del piano.
4. Utilizzo di Activity Monitor per la risoluzione dei problemi relativi alle prestazioni
Activity Monitor dà il meglio di sé quando lo si utilizza in modo sistematico per diagnosticare e risolvere i problemi di prestazioni. Questa sezione illustra gli scenari più comuni per la risoluzione dei problemi e come affrontarli.
4.1 Diagnosi di esecuzioni di query eccessive
Uno di loroost Un problema di prestazioni comune è l'esecuzione di query molto più frequentemente del necessario, spesso a causa di problemi di progettazione dell'applicazione.
4.1.1 Identificazione delle query ripetute
Per individuare le query eseguite troppo spesso:
- Apri Activity Monitor ed espandi la Query costose recenti riquadro.
- Ordina per Esecuzioni/min (esecuzioni al minuto).
- Cercare le query in alto con conteggi di esecuzione che sembrano irragionevolmente elevati.
- Fare clic con il pulsante destro del mouse sulla query sospetta e selezionare Modifica testo query per esaminare l'istruzione SQL.
Ad esempio, se vedi una semplice istruzione SELECT che viene eseguita 37,000 volte al minuto, chiediti se l'applicazione ha davvero bisogno di chiamare questa query così frequentemente.ost le query eseguite più di qualche migliaio di volte al minuto giustificano un'indagine.
4.1.2 Analisi delle cause profonde
Le esecuzioni eccessive di query derivano in genere dai seguenti problemi:
- Problema di query N+1: Il codice dell'applicazione recupera un elenco di elementi, quindi esegue una query separata per ciascun elemento per recuperare i dati correlati. Questo crea N query aggiuntive, dove N è il numero di elementi.
- Manca la memorizzazione nella cache: L'applicazione interroga il database per i dati che rarmodifica rapidamente anziché memorizzarla nella memoria dell'applicazione.
- Cicli di polling: Il codice interroga ripetutamente il database per verificare la presenza di modifiche di stato anziché utilizzare notifiche di modifica o code di messaggi.
- Inefficienza ORM: Entity Framework e strumenti simili a volte generano modelli di query inefficienti quando gli sviluppatori non capiscono come il loro codice si traduce in SQL.
Per determinare la causa principale, risalire alla query fino al codice dell'applicazione. Notare il Applicazione e Accedi colonne nel riquadro Processi quando la query viene eseguita. È anche possibile fare clic con il pulsante destro del mouse sul processo e selezionare Traccia il processo in SQL Server Profiler per vedere lo schema di chiamata.
4.1.3 Soluzioni e buone pratiche
Una volta individuate le esecuzioni eccessive delle query, prendi in considerazione queste soluzioni:
- Elaborazione in lotti: Modificare il codice dell'applicazione per recuperare più elementi in un'unica query utilizzando join o clausole IN anziché eseguire query separate in un ciclo.
- Memorizzazione dei risultati nella cache: Memorizzare nella cache dati a cui si accede frequentemente e che cambiano raramente nella memoria dell'applicazione con tempi di scadenza appropriati.
- Caricamento impaziente: Configurare gli ORM per utilizzare strategie di caricamento rapido che recuperano i dati correlati in un numero inferiore di query, ma più efficienti.
- Parametrizzazione della query: Assicurare che le query utilizzino parametri anziché concatenare valori, il che migliora il riutilizzo della cache del piano e riduce il sovraccarico di compilazione.
4.2 Indagine sui problemi di blocco
Il blocco si verifica quando una sessione mantiene blocchi che impediscono ad altre sessioni di procedere. Questo si manifesta con tempi di risposta lenti delle applicazioni e frustrazione degli utenti.
4.2.1 Identificazione delle catene di blocco
Per rilevare e analizzare i blocchi:
- Apri Activity Monitor ed espandi la Processi riquadro.
- Cerca sessioni con valori in Bloccato da colonna: sono in attesa di blocchi detenuti da altre sessioni.
- Trova le sessioni con '1' in Bloccante per la testa colonna: queste sono la causa principale del blocco delle catene.
- Notare la Session ID del bloccante della testa.
- Fare clic con il pulsante destro del mouse sulla sessione di blocco della testa e selezionare Dettagli per vedere quale comando sta eseguendo.
Comprendere la catena di blocco è fondamentale. Il blocco principale è la sessione che devi analizzare, non le sessioni bloccate a valle.
4.2.2 Comprensione dei tipi di blocco
Migliori Tipo di attesa La colonna nel riquadro Processi indica il tipo di blocco che le sessioni bloccate sono in attesa:
- LCK_M_X: Attesa di blocco esclusivo, in genere causata da operazioni UPDATE, DELETE o INSERT.
- LCK_M_S: Attesa del blocco condiviso, solitamente istruzioni SELECT in attesa del rilascio dei blocchi esclusivi.
- LCK_M_U: Blocco di aggiornamento in attesa, un tipo di blocco intermedio utilizzato durante gli aggiornamenti.
- LCK_M_IX: Attesa di blocco esclusivo di intenti, che indica una contesa di blocco a livello di pagina o riga.
Migliori Attendi Risorsa La colonna mostra quale oggetto del database è bloccato, aiutandoti a capire quale tabella o indice è coinvolto nella contesa.
4.2.3 Risoluzione dei problemi di blocco
Una volta identificata la sessione bloccante e la sua funzione, hai diverse opzioni:
- Attendi il completamento: Se il blocco della testa sta eseguendo una query legittima che verrà completata a breve, potrebbe essere meglio lasciarla terminare naturalmente.
- Uccidi la sessione: Se il blocco della testa è bloccato o sta eseguendo una query che dovrebbe essere annullata:
- Fare clic con il pulsante destro del mouse sulla sessione nel riquadro Processi.
- Seleziona Kill Process.
- Confermare l'azione nella finestra di dialogo.
- Ottimizza le query: Se il blocco si ripete con le stesse query, ottimizzarle per ridurne la durata.
- Regola i livelli di isolamento: Si consiglia di utilizzare READ COMMITTED SNAPSHOT ISOLATION per ridurre i blocchi nei carichi di lavoro ad alta intensità di lettura.
- Sintonizzazione dell'indice: Aggiungere indici per velocizzare le query, riducendo la durata dei blocchi.
4.3 Analisi dell'utilizzo elevato della CPU
Quando il riquadro Panoramica mostra un tempo di elaborazione costantemente pari o prossimo al 100%, è necessario identificare le query responsabili e determinare se possono essere ottimizzate.
4.3.1 Identificazione delle query ad alta intensità di CPU
Per trovare le query che consumano troppa CPU:
- Aprire il Query costose recenti riquadro.
- Ordina per CPU (ms/sec) per mostrare le query utilizzando most Tempo della CPU.
- Esamina le query principali nell'elenco.
- Fare clic con il pulsante destro del mouse sulle query ad alta CPU e selezionare Modifica testo query per visualizzare l'istruzione SQL.
- Seleziona Mostra piano di esecuzione per capire come viene eseguita la query.
Prestare attenzione non solo all'utilizzo della CPU delle singole query, ma anche a Esecuzioni/min colonna. Una query che utilizza una quantità moderata di CPU per esecuzione ma che viene eseguita migliaia di volte al minuto può rappresentare il maggiore consumatore di CPU.
4.3.2 Tecniche di ottimizzazione delle query
Gli approcci più comuni per ridurre il consumo di CPU includono:
- Aggiungi indici mancanti: Le ricerche di indici utilizzano molta meno CPU rispetto alle scansioni di tabelle. Cerca le raccomandazioni di indici mancanti nei piani di esecuzione.
- Riscrivi le query inefficienti: Sostituisci i cursori con operazioni basate su insiemi, elimina le funzioni non necessarie nelle clausole WHERE e rimuovi i join ridondanti.
- Aggiorna statistiche: Le statistiche obsolete causano SQL Server per scegliere piani di esecuzione inefficienti. Eseguire UPDATE STATISTICS sulle tabelle interessate.
- Ridurre il volume dei dati: Aggiungere le clausole WHERE per filtrare i dati in anticipo, utilizzare TOP o OFFSET/FETCH per la paginazione ed evitare SELECT *.
- Correggi lo sniffing dei parametri: Utilizzare OPZIONE (RICOMPILA), suggerimenti per le query o guide di pianificazione quando l'analisi dei parametri causa problemi.
4.4 Indagine sui problemi di memoria
La pressione sulla memoria può causare la fuoriuscita delle query su disco, con un conseguente calo significativo delle prestazioni. Activity Monitor aiuta a identificare le operazioni che richiedono molta memoria.
4.4.1 Comprensione delle metriche di memoria
Migliori Utilizzo della memoria La colonna nel riquadro Processi mostra la memoria allocata a ciascuna sessione in kilobyte. Un elevato utilizzo di memoria da parte di una singola sessione spesso indica:
- Operazioni di ordinamento o hash di grandi dimensioni che non potevano rientrare nella memoria inizialmente concessa
- Query che recuperano enormi set di risultati
- Parallelismo eccessivo che crea molte copie degli operatori del piano di esecuzione
- Perdite di memoria nelle procedure o funzioni archiviate CLR
Il riquadro Attese risorse potrebbe mostrare Attese memoria quando le query non riescono a ottenere sufficienti concessioni di memoria e devono attendere che la memoria diventi disponibile.
4.4.2 Identificazione delle query ad alta intensità di memoria
Per trovare le query che causano pressione sulla memoria:
- Nel Processi riquadro, ordina per Utilizzo della memoria per vedere le sessioni che consumano il most memoria.
- Fare clic con il pulsante destro del mouse sulle sessioni con elevato utilizzo di memoria e selezionare Dettagli per visualizzare le loro query.
- Nel Query costose recenti riquadro, cerca query con elevato Letture logiche or Scritture logiche, poiché spesso sono correlati all'utilizzo della memoria.
- Esaminare i piani di esecuzione per gli operatori Sort e Hash Match, che utilizzano concessioni di memoria.
Le query che mostrano avvisi di "Concessione di memoria" nei piani di esecuzione o avvisi di fuoriuscita indicano problemi di pressione della memoria.
4.5 Rilevamento dei problemi di prestazioni delle applicazioni
Quando gli utenti segnalano tempi di risposta lenti delle applicazioni, Activity Monitor aiuta a determinare se il collo di bottiglia è il database.
4.5.1 Correlazione di Activity Monitor con problemi dell'applicazione
Per indagare sulla lentezza dell'applicazione:
- Annotare l'ora esatta in cui gli utenti segnalano i problemi e le applicazioni interessate.
- Apri Activity Monitor e controlla Panoramica riquadro per i picchi di risorse in quel momento.
- Nel Processi riquadro, filtra per Applicazione per mostrare solo le connessioni dall'applicazione interessata.
- Cerca in alto Tempo di attesa valori che indicano ritardi nel database.
- Controlla il Query costose recenti riquadro per le query provenienti da quell'applicazione che consumano risorse significative.
Se il database non mostra alcuna attività insolita mentre gli utenti riscontrano lentezza, il problema risiede probabilmente nel codice dell'applicazione, nella latenza della rete o nelle prestazioni lato client.
4.5.2 Identificazione di modelli applicativi inefficienti
Activity Monitor rivela diversi anti-pattern nella progettazione delle applicazioni:
- Applicazioni chiacchierone: Molte query di piccole dimensioni anziché meno query, ma più efficienti. Identificato da un elevato numero di connessioni e numerose query semplici nelle query costose recenti.
- N+1 query: Una query seguita da N query aggiuntive per dati correlati. Viene visualizzata come una query semplice con un numero di esecuzioni al minuto estremamente elevato.
- Grandi set di risultati: Applicazioni che recuperano molti più dati del necessario. Cercare un elevato Letture logiche combinato con semplici query SELECT *.
- Timeout mancanti: Le applicazioni che non impostano timeout per i comandi potrebbero lasciare le connessioni aperte indefinitamente, visibili come sessioni di lunga durata nel riquadro Processi.
5. Metodi alternativi: ottenere dati Activity Monitor tramite T-SQL
Sebbene Activity Monitor offra una comoda interfaccia grafica, a volte è necessario recuperare informazioni equivalenti a livello di programmazione o creare soluzioni di monitoraggio personalizzate.
5.1 Utilizzo delle viste di gestione dinamica (DMV)
SQL Server espone le informazioni sulle attività tramite viste di gestione dinamica, che Activity Monitor interroga dietro le quinte.
5.1.1 Principali DMV per il monitoraggio delle attività
Il most I DMV importanti per replicare la funzionalità Activity Monitor includono:
- richieste di esecuzione di sys.dm: Mostra le richieste attualmente in esecuzione con informazioni su CPU, I/O e attesa.
- sessioni di sys.dm_exec: Contiene informazioni a livello di sessione come nome di accesso, host nome e nome del programma.
- sys.dm_os_wait_stats: Fornisce statistiche di attesa cumulative per l'intera istanza.
- sys.dm_exec_query_stats: Contiene statistiche aggregate sulle prestazioni per le query memorizzate nella cache.
- statistiche del file virtuale sys.dm_io: Restituisce statistiche I/O per file di dati e di registro.
- sys.dm_exec_sql_text: Recupera il testo SQL per un dato sql_handle o plan_handle.
- sys.dm_exec_query_plan: Restituisce il piano di esecuzione per una query memorizzata nella cache.
5.1.2 Esempi di query per informazioni sul processo
Per replicare la funzionalità del riquadro Processi, è possibile eseguire una query:
SELECT
s.session_id AS [Session ID],
CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
s.login_name AS [Login],
ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), '') AS [Database],
ISNULL(t.task_state, '') AS [Task State],
ISNULL(r.command, '') AS [Command],
r.cpu_time AS [CPU Time],
r.total_elapsed_time AS [Elapsed Time],
r.wait_time AS [Wait Time],
r.wait_type AS [Wait Type],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
5.1.3 Query di esempio per le statistiche di attesa
Per visualizzare statistiche di attesa simili al riquadro Attese risorse:
SELECT TOP 10
wait_type AS [Wait Type],
wait_time_ms / 1000.0 AS [Wait Time (sec)],
waiting_tasks_count AS [Waiting Tasks],
wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
AND wait_type NOT LIKE '%IDLE%'
AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;
5.2 Utilizzo di sp_WhoIsActive
sp_WhoIsActive è una potente stored procedure creata dalla community che fornisce informazioni più dettagliate rispetto ad Activity Monitor in un singolo set di risultati.
5.2.1 Installazione di sp_WhoIsActive
Per installare sp_WhoIsActive:
- Scarica l'ultima versione da
http://whoisactive.com. - Il download è uno script SQL contenente la definizione della procedura.
- Apri lo script in SQL Server Studio di gestione.
- Collegati al tuo SQL Server esempio.
- Eseguire lo script per creare la procedura nel database master.
- Concedere i permessi di esecuzione agli utenti appropriati.
Poiché sp_WhoIsActive è installato nel database master, è accessibile da qualsiasi contesto di database.
5.2.2 Esempi di utilizzo di base
Il modo più semplice per utilizzare sp_WhoIsActive è:
EXEC sp_WhoIsActive;
Restituisce un set di risultati che mostra tutte le sessioni attive con le relative query, tipi di attesa, informazioni di blocco e utilizzo delle risorse.
Per un campione di 10 secondi che mostra l'attività in quel periodo:
EXEC sp_WhoIsActive @delta_interval = 10;
Questo calcola i delta per parametri come CPU e letture, mostrando cosa è successo durante quei 10 secondi.
5.2.3 Parametri avanzati
sp_WhoIsActive supporta numerosi parametri per la personalizzazione:
- @filtro: Filtra i risultati in base a sessioni, database o accessi specifici.
- @filter_type: Specificare a cosa si applica il filtro (sessione, database, accesso, ecc.).
- @get_plans: Includere i piani di esecuzione nei risultati (impostare su 1).
- @get_locks: Mostra informazioni dettagliate sul blocco (impostato su 1).
- @get_transaction_info: Visualizza i dettagli della transazione (impostato su 1).
- @sort_order: Ordina i risultati in base a diverse metriche (CPU, letture, durata, ecc.).
- @destination_table: Inserire i risultati in una tabella per il monitoraggio storico.
Esempio che mostra i piani ordinati per CPU:
EXEC sp_WhoIsActive
@get_plans = 1,
@sort_order = '[CPU] DESC';
5.3 Utilizzo delle procedure archiviate di sistema
SQL Server include le tradizionali procedure memorizzate per il monitoraggio dell'attività, sebbene forniscano meno informazioni rispetto a DMV o Activity Monitor.
5.3.1 sp_who e sp_who2
La procedura sp_who mostra le informazioni di base sulla sessione:
EXEC sp_who;
La procedura sp_who2 fornisce maggiori dettagli:
EXEC sp_who2;
Entrambe le procedure mostrano ID di sessione, nomi di accesso, tempo di CPU e informazioni di blocco. Tuttavia, non dispongono dei dettagli disponibili tramite DMV o Activity Monitor. Sono most utile per controlli rapidi quando hai bisogno di informazioni minime in tempi rapidi.
5.3.2 Altre procedure di sistema utili
Ulteriori procedure di sistema per il monitoraggio includono:
- sp_lock: Mostra le informazioni sul blocco (obsoleto; utilizzare invece sys.dm_tran_locks).
- sp_monitor: Visualizza le statistiche su SQL Server attività.
- sp_help: Mostra le definizioni degli oggetti e i metadati.
- DBCC SQLPERF: Visualizza l'utilizzo dello spazio del registro delle transazioni e le statistiche di attesa.
5.4 Creazione di script di monitoraggio personalizzati
Per gli ambienti che richiedono un monitoraggio specifico, oltre a quello fornito da Activity Monitor, è possibile creare soluzioni personalizzate utilizzando DMV.
5.4.1 Script equivalente completo del monitoraggio delle attività
Ecco uno script completo che replica most Funzionalità di Activity Monitor:
-- Processes Information
SELECT
s.session_id AS [Session ID],
CONVERT(CHAR(1), s.is_user_process) AS [User Process],
s.login_name AS [Login],
ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), N'') AS [Database],
ISNULL(t.task_state, N'') AS [Task State],
ISNULL(r.command, N'') AS [Command],
SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
((CASE r.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS [Statement],
st.text AS [Command Text],
r.cpu_time AS [CPU Time (ms)],
r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
r.wait_time AS [Wait Time (ms)],
r.wait_type AS [Wait Type],
r.wait_resource AS [Wait Resource],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
c.client_net_address AS [Net Address],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
-- Recent Expensive Queries
SELECT TOP 20
qs.execution_count /
DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
qs.total_worker_time / 1000 AS [CPU Time (ms)],
qs.total_physical_reads AS [Physical Reads],
qs.total_logical_writes AS [Logical Writes],
qs.total_logical_reads AS [Logical Reads],
qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.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) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;
5.4.2 Automazione del monitoraggio con i processi dell'agente SQL
È possibile pianificare script di monitoraggio personalizzati utilizzando SQL Server Agente:
- Creare una tabella per memorizzare i risultati del monitoraggio.
- Modifica lo script di monitoraggio per inserire i risultati in questa tabella.
- In SQL Server Management Studio, espandi SQL Server Agente in Esplora oggetti.
- Fare clic con Offerte di lavoro e seleziona Nuovo lavoro.
- Configurare il processo in modo che esegua lo script di monitoraggio a intervalli regolari.
- Imposta avvisi o report in base ai dati raccolti.
Questo approccio consente il monitoraggio storico e l'analisi delle tendenze che Activity Monitor non fornisce.
6. Limitazioni e considerazioni sul monitoraggio delle attività
Sebbene Activity Monitor sia utile, comprenderne i limiti aiuta a utilizzarlo in modo appropriato e ad integrarlo con altri strumenti quando necessario.
6.1 Comprensione dell'overhead di Activity Monitor
Activity Monitor non è gratuito: consuma risorse del server per raccogliere e visualizzare informazioni. Comprendere questo sovraccarico ti aiuterà a usarlo in modo responsabile.
6.1.1 Impatto sulle risorse del server
Activity Monitor esegue query sui DMV di sistema a ogni aggiornamento. Queste query consumano CPU, generano letture logiche e possono mantenere temporaneamente blocchi sulle tabelle di sistema. Sui server con un elevato carico di lavoro, questo sovraccarico può influire sulle prestazioni.
I riquadri Processi e Query costose recenti sono particolarmente costosi, poiché devono analizzare DMV e tabelle di cache potenzialmente di grandi dimensioni. Su server con migliaia di piani di query memorizzati nella cache, l'aggiornamento delle Query costose recenti può richiedere diversi secondi.
La documentazione di Microsoft avverte che intervalli di aggiornamento inferiori a 10 secondi possono influire notevolmente sulle prestazioni del server, soprattutto sui sistemi già caricati.
6.1.2 Procedure consigliate per l'intervallo di aggiornamento
Scegli gli intervalli di aggiornamento più adatti alla tua situazione:
- 1-5 secondi: Solo per la risoluzione immediata di problemi critici su server poco carichi. Non lasciare Activity Monitor in esecuzione a questi intervalli.
- 10 secondi (predefinito): Ragionevole per most scenari di risoluzione dei problemi e monitoraggio generale.
- 30-60 secondi: Scelta migliore per server di produzione sottoposti a carichi elevati o in caso di monitoraggio per periodi prolungati.
- Solo aggiornamento manuale: Per situazioni in cui si desidera controllare occasionalmente lo stato attuale senza effettuare un polling continuo.
Chiudere sempre Monitoraggio Attività al termine delle indagini. Non lasciarlo in esecuzione continua, soprattutto se si tratta di più istanze di utenti diversi.
6.2 Problemi di raggruppamento del tipo di attesa
L'approccio di Activity Monitor alla categorizzazione delle attese, pur semplificando la visualizzazione, può oscurare diagnosi importantiostinformazioni ic.
6.2.1 Come attende il gruppo Activity Monitor
SQL Server Traccia centinaia di tipi di attesa distinti, ognuno dei quali indica una risorsa o una condizione specifica. Activity Monitor li raggruppa in categorie generali come "Buffer Latch", "Lock" e "Memory".
Ad esempio, la categoria "Buffer Latch" include PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX e diversi altri tipi di attesa specifici. Sebbene siano tutti correlati all'accesso alle pagine, hanno cause e soluzioni diverse.
Microsoft non documenta esattamente quali tipi di attesa sono mappati a quali categorie, rendendo difficile capire cosa si sta realmente vedendo.
6.2.2 Tipi di attesa mancanti
Activity Monitor non mostra tutti i tipi di attesa. Most In particolare, spesso omette le attese CXPACKET, che indicano l'esecuzione di query parallele. Le attese CXPACKET sono comuni e solitamente non problematiche, ma sapere che sono presenti aiuta a comprendere le caratteristiche del carico di lavoro.
Quando Activity Monitor mostra "Buffer Latch" come attesa principale ma altri strumenti mostrano CXPACKET dominante, la discrepanza deriva dalla logica di filtraggio e raggruppamento di Activity Monitor.
6.2.3 Perché sono importanti i tipi specifici di attesa
Conoscere il tipo di attesa specifico è importante per la risoluzione dei problemi:
- PAGELATCH_EX: Spesso indica una contesa di tempdb nelle pagine di allocazione. La soluzione prevede l'aggiunta di altri file di dati tempdb.
- PAGELATCH_SH: Potrebbe indicare pagine hot nelle tabelle utente. La soluzione prevede il partizionamento o la riorganizzazione degli indici.
- PAGINA_ACCESSO: Comune durante gli aggiornamenti. Potrebbe indicare il normale funzionamento piuttosto che un problema.
Activity Monitor raggruppa tutti questi elementi sotto la voce "Buffer Latch", rendendo più difficile la diagnosi. Strumenti come sp_WhoIsActive e le query DMV mostrano tipi di attesa specifici.
6.3 Accuratezza e tempestività dei dati
Activity Monitor offre una visualizzazione quasi in tempo reale, ma "quasi" è la parola chiave. Comprendere il suo metodo di raccolta dati aiuta a interpretare correttamente i risultati.
6.3.1 Snapshot vs Monitoraggio continuo
Activity Monitor mostra snapshot point-in-time acquisiti a ogni intervallo di aggiornamento. Gli eventi che si verificano tra uno snapshot e l'altro non vengono acquisiti. Se una query viene eseguita per 2 secondi e si aggiorna ogni 10 secondi, potrebbe essere visualizzata una sola volta o non essere visualizzata affatto, a seconda della tempistica.
Ciò significa che Activity Monitor è in grado di individuare con efficacia i problemi persistenti (blocchi che durano minuti, CPU costantemente elevata), ma potrebbe non rilevare i problemi transitori (brevi deadlock, picchi occasionali di query).
6.3.2 Aggregazione e campionamento
Il riquadro Query costose recenti mostra i dati aggregati da quando i piani di query sono stati inseriti nella cache. Due query identiche con valori di parametro diversi vengono visualizzate come un'unica riga se condividono un piano. Questa aggregazione può mascherare problemi con combinazioni di parametri specifiche (problemi di sniffing dei parametri).
Il riquadro Attese risorse calcola le tariffe confrontando gli snapshot. Se le statistiche di attesa vengono reimpostate tra gli snapshot (rare ma possibile), i tassi calcolati potrebbero essere errati.
6.4 Quando NON utilizzare Activity Monitor
Activity Monitor non è adatto a tutti gli scenari di monitoraggio. È importante riconoscere quando strumenti alternativi rappresentano una scelta migliore.
6.4.1 Requisiti di analisi storica
Monitoraggio Attività mostra solo l'attività attuale o recente. Non memorizza dati storici. Se hai bisogno di analizzare le tendenze nell'arco di giorni o settimane, confrontare le prestazioni attuali con quelle di base o generare report sui modelli di prestazioni, Monitoraggio Attività non è sufficiente.
Per l'analisi storica, utilizzare SQL ServerDashboard delle prestazioni integrata, eventi estesi con file tarottiene o soluzioni di monitoraggio di terze parti.
6.4.2 Statistiche di attesa dettagliate necessarie
Quando sono necessarie informazioni precise sul tipo di attesa per un'ottimizzazione avanzata, il raggruppamento e il filtro di Activity Monitor lo rendono inadeguato. Utilizzare direttamente le query DMV o sp_WhoIsActive.
Per un'analisi completa delle statistiche di attesa, interrogare direttamente sys.dm_os_wait_stats e filtrare manualmente le attese benigne.
6.4.3 Considerazioni sul server di produzione
Sui server di produzione sottoposti a carichi di lavoro elevati, il sovraccarico di Activity Monitor può essere problematico. Più amministratori di database non dovrebbero eseguire Activity Monitor contemporaneamente sullo stesso server.
Per il monitoraggio della produzione, prendi in considerazione alternative leggere come snapshot DMV pianificati archiviati in un database di monitoraggio oppure utilizza il routing di sola lettura per monitorare le repliche secondarie nelle configurazioni Always On.
7. Procedure consigliate per l'utilizzo di Activity Monitor
Seguendo le best practice potrai ottenere il massimo valore da Activity Monitor, riducendo al minimo l'impatto negativo sui tuoi server.
7.1 Quando utilizzare Activity Monitor
Activity Monitor è perfetto in scenari specifici. Usalo quando i suoi punti di forza sono in linea con le tue esigenze.
7.1.1 Problemi di prestazioni in tempo reale
Monitoraggio Attività è la soluzione ideale quando gli utenti riscontrano problemi e si desidera diagnosticare immediatamente il problema. La visualizzazione in tempo reale aiuta a vedere cosa sta succedendo in quel momento.
Quando ricevi una chiamata che ti informa che "l'applicazione è lenta", uno dei primi passi da compiere è aprire Monitoraggio Attività. Puoi determinare rapidamente se il database è occupato, bloccato o inattivo.
7.1.2 Indagine sul rallentamento dell'applicazione
Quando un'applicazione specifica non risponde, Activity Monitor ti aiuta a determinare se la causa è un problema al database. Filtra il riquadro Processi in base al nome dell'applicazione per visualizzare solo l'attività del database di quell'applicazione.
Se l'applicazione non mostra alcuna attività sul database mentre gli utenti segnalano problemi, il problema risiede altrove nello stack. Se notate blocchi estesi o query costose, avete trovato il colpevole.
7.1.3 Controlli rapidi dello stato di salute
Activity Monitor offre un'eccellente dashboard per rapidi controlli di integrità durante l'amministrazione di routine. Apritela, date un'occhiata ai grafici di panoramica e verificate che non vi siano anomalie.
Questo controllo superficiale richiede pochi secondi e può rivelare problemi prima che diventino critici. Fallo diventare parte della tua routine quotidiana.
7.2 Impostazioni di configurazione ottimali
Una corretta configurazione di Activity Monitor ne migliora sia l'utilità sia l'utilizzo delle risorse.
7.2.1 Intervalli di aggiornamento consigliati
Adatta l'intervallo di aggiornamento al tuo scopo:
- Risoluzione dei problemi attiva: 10 secondi garantiscono una buona reattività con un overhead ragionevole.
- Monitoraggio esteso: 30-60 secondi riducono l'impatto sul server durante periodi di osservazione più lunghi.
- Diagnosi del problema critico: 5 secondi garantiscono un'elevata granularità quando ogni secondo conta, ma vanno usati per poco tempo.
- Controlli sanitari regolari: Aggiornamento manuale (intervallo di 1 ora) quando non stai guardando attivamente.
Ricordatevi di chiudere Monitoraggio Attività al termine dell'operazione. Impostarlo su un intervallo lungo e poi dimenticarvene spreca le risorse del server.
7.2.2 Strategie di filtraggio
Utilizza i filtri per concentrarti sulle informazioni rilevanti e ridurre il carico cognitivo:
- Filtra i processi per Banca Dati per visualizzare solo l'attività su database specifici.
- Filtra per Accedi per monitorare l'attività di un utente specifico.
- Filtra per Stato dell'attività = IN ESECUZIONE per nascondere le sessioni inattive.
- Filtra per Applicazione per isolare il traffico da programmi specifici.
- Mostra solo NonBlanks in Bloccato da per vedere solo le situazioni di blocco.
7.2.3 Selezione e ordinamento delle colonne
Sviluppare un approccio sistematico alla revisione dei dati di Activity Monitor:
- Start con Panoramica: Controllare i grafici per individuare picchi o anomalie evidenti.
- Controllare i processi per il blocco: Ordina per ID sessione, quindi cerca i valori Bloccato da.
- Revisione delle risorse in attesa: Ordina per tempo di attesa cumulativo per identificare i colli di bottiglia delle risorse.
- Analizza le query costose: Ordina in base a diverse metriche (CPU, esecuzioni, letture) per trovare diversi tipi di problemi.
- Verificare con il riquadro I/O: Verificare se le query ad alta intensità di I/O sono correlate a un'elevata attività del disco.
7.3 Integrazione con altri strumenti
Activity Monitor funziona meglio se inserito in un toolkit più ampio piuttosto che come soluzione autonoma.
7.3.1 Utilizzo con SQL Server Profiler
Monitoraggio attività e SQL Server I due strumenti si completano a vicenda. Quando identifichi una sessione problematica in Monitoraggio Attività, fai clic destro su di essa e seleziona Traccia il processo in SQL Server Profiler.
Questo avvia Profiler con filtri già configurati per catturare solo l'attività di quella sessione. Viene visualizzata la sequenza completa delle istruzioni eseguite, le informazioni sui tempi e i messaggi di errore, dettagli che Activity Monitor non fornisce.
Per saperne di più su SQL Server Capacità del profiler e tecniche di tracciamento avanzate, vedere il nostro globale SQL Server Guida del profiler.
7.3.2 Integrazione con eventi estesi
Gli eventi estesi offrono un monitoraggio dettagliato e a basso overhead che cattura le informazioni che Activity Monitor non riesce a rilevare. Crea sessioni di eventi estesi per monitorare eventi specifici come deadlock, query di lunga durata o ricompilazioni eccessive.
Utilizza Activity Monitor per indagini immediate ed Extended Events per il monitoraggio continuo e l'analisi storica. I due strumenti rispondono a esigenze diverse.
Per saperne di più su SQL Server Funzionalità di eventi estesi e tecniche di monitoraggio avanzate, vedere il nostro globale SQL Server Guida agli eventi estesi.
7.3.3 Soluzioni di monitoraggio di terze parti
Strumenti commerciali come SolarWinds Database Performance Analyzer, Redgate SQL Monitor e Quest Spotlight forniscono funzionalità che mancano ad Activity Monitor: avvisi, trend storici, pianificazione della capacità e diagnosi automatizzataostci.
Questi strumenti sono preziose integrazioni ad Activity Monitor, non sostitutive. Activity Monitor rimane utile per controlli e indagini rapide anche quando sono disponibili strumenti di monitoraggio sofisticati.
7.4 Errori comuni da evitare
Comprendere gli errori più comuni di Activity Monitor ti aiuterà a utilizzarlo in modo più efficace.
7.4.1 Lasciare Activity Monitor in esecuzione continua
Il most Un errore comune è aprire Activity Monitor e lasciarlo in esecuzione a tempo indeterminato. Questo spreca risorse del server e offre scarso valore, dato che non si sta monitorando attivamente.
Chiudi Activity Monitor quando non lo utilizzi attivamente. Se hai bisogno di un monitoraggio continuo, implementa una soluzione di monitoraggio adeguata con raccolta dati pianificata.
7.4.2 Affidarsi eccessivamente al solo Activity Monitor
Activity Monitor offre una prospettiva unica sullo stato di salute del server. Non affidarti esclusivamente a questo. Integralo con Windows Performance Monitor per metriche a livello di sistema operativo, Extended Events per un monitoraggio dettagliato e analisi del piano di esecuzione per l'ottimizzazione delle query.
Activity Monitor ti aiuta a identificare i problemi, ma per risolverli spesso sono necessari strumenti aggiuntivi e un'analisi più approfondita.
Scopri di più sui SQL Server monitor delle prestazioni nel nostro Guida Completa.
7.4.3 Ignorare le tendenze storiche
Activity Monitor mostra lo stato attuale, ma i problemi di prestazioni spesso presentano andamenti visibili solo nel tempo. Implementa la raccolta di dati storici in modo da poter confrontare le metriche attuali con i valori di riferimento e identificare le tendenze.
Senza un contesto storico, potresti non renderti conto che l'utilizzo "normale" della CPU odierno è superiore del 30% rispetto al valore di riferimento del mese scorso, il che indica un graduale degrado.
8. Risoluzione dei problemi relativi al monitoraggio delle attività
A volte, Activity Monitor stesso presenta dei problemi. Sapere come risolvere questi problemi evita frustrazioni.
8.1 Activity Monitor non si apre o non visualizza dati
Se Activity Monitor si apre ma mostra riquadri vuoti o non si apre affatto, potrebbero esserci diversi fattori responsabili.
8.1.1 Problemi di autorizzazione
Il most La causa comune dei problemi di Monitoraggio Attività è la mancanza di autorizzazioni. Per verificare e risolvere il problema:
- Controlla le autorizzazioni a livello di server:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name = 'VIEW SERVER STATE'; - Se non viene restituita alcuna riga, non si dispone dell'autorizzazione VIEW SERVER STATE.
- Chiedi a un amministratore del server di concederlo:
USE master; GRANT VIEW SERVER STATE TO [YourLogin]; - Dopo aver concesso le autorizzazioni, chiudere e riaprire Activity Monitor.
Problemi di compatibilità della versione 8.1.2
Utilizzando una vecchia versione di SQL Server Management Studio per connettersi a una versione più recente SQL Server La versione può causare errori di Activity Monitor. Lo strumento potrebbe non comprendere i nuovi tipi di attesa o le colonne della vista di sistema.
Utilizzare sempre la versione SSMS che corrisponde o è più recente della tua SQL Server versione. Microsoft fornisce l'ultima versione di SSMS come download gratuito separato da SQL Server stessa.
8.1.3 Problemi di firewall e rete
Activity Monitor richiede la connettività a SQL Server istanza su porte standard (1433 per impostazione predefinita). Se riesci a connetterti tramite Esplora oggetti ma Activity Monitor non funziona, è possibile che le regole del firewall stiano bloccando connessioni specifiche.
Verifica che il tuo cliente possa raggiungere il SQL Server computer su tutte le porte necessarie. Controlla sia Windows Firewall che eventuali firewall di rete tra il client e il server.
8.2 Monitoraggio attività in pausa permanente
Un problema comune, in particolare in SQL Server Nel 2019 Activity Monitor si apre in modalità pausa e si rifiuta di riprendere.
8.2.1 Comprensione dello stato di pausa
Quando Activity Monitor è in pausa, tutti i riquadri mostrano lo stato "In pausa" con un pulsante di ripresa che potrebbe non funzionare. Questo impedisce di visualizzare l'attività del server.
Lo stato di pausa si verifica solitamente a causa di problemi di autorizzazione, restrizioni di connessione remota o bug della versione di SSMS, piuttosto che a causa di un'azione di pausa intenzionale.
8.2.2 Cause comuni
Activity Monitor potrebbe entrare in stato di pausa permanente a causa di:
- Manca l'autorizzazione VIEW SERVER STATE nei riquadri più recenti aggiunti di recente SQL Server versioni
- Connessioni remote disabilitate su SQL Server esempio
- Errori di autenticazione per query di sistema specifiche
- Bug in build SSMS specifiche, in particolare dalla 18.0 alla 18.3
- Problemi di connettività tra client e server
8.2.3 Passaggi di risoluzione
Per risolvere i problemi di stato di pausa di Activity Monitor:
- Aggiorna SSMS: Scarica e installa l'ultimo SQL Server Versione di Management Studio dal sito Web di Microsoft. Molti bug relativi allo stato di pausa sono stati risolti nelle versioni successive.
- Verifica i permessi: Assicurati di disporre delle autorizzazioni VIEW SERVER STATE e VIEW ANY DEFINITION.
- Controllare le connessioni remote: Verificare che il file SQL Server l'istanza consente connessioni remote:
EXEC sp_configure 'remote access';Se il valore è 0, chiedere a un amministratore di abilitarlo.
- Restart SSMS: A volte è sufficiente chiudere tutte le finestre e le risoluzionitarting SQL Server Management Studio risolve il problema.
- Connettiti con l'autenticazione di Windows: Se si utilizza l'autenticazione SQL, provare invece l'autenticazione Windows, poiché a volte aggira i problemi di pausa correlati all'autenticazione.
8.3 Problemi di prestazioni durante l'utilizzo di Activity Monitor
Se Activity Monitor stesso diventa lento o causa un degrado delle prestazioni del server, è necessario apportare delle modifiche.
8.3.1 Riduzione del sovraccarico di monitoraggio
Per ridurre al minimo l'impatto di Activity Monitor:
- Aumentare l'intervallo di aggiornamento a 30 secondi o 1 minuto.
- Chiudi i riquadri che non stai utilizzando attivamente cliccando sul pulsante Comprimi.
- Quando i riquadri sono compressi, Activity Monitor non esegue query sui dati per essi.
- Evitare di eseguire più istanze di Activity Monitor contemporaneamente.
- Chiudere completamente Activity Monitor quando non si stanno esaminando attivamente i problemi.
8.3.2 Metodi alternativi di monitoraggio leggero
Se Activity Monitor richiede troppe risorse per il tuo ambiente, prendi in considerazione delle alternative:
- Interroga direttamente i DMV: Scrivi query T-SQL specifiche che recuperino solo le informazioni di cui hai bisogno.
- Utilizzare sp_WhoIsActive: Questa stored procedure è altamente ottimizzata e in genere ha un overhead inferiore rispetto ad Activity Monitor.
- Implementare il campionamento: Pianificare processi di SQL Agent che acquisiscano snapshot dei dati DMV a intervalli regolari, memorizzando i risultati in tabelle per analisi successive.
- Monitorare le repliche secondarie: In Gruppi di disponibilità Always On, esegui Activity Monitor su un secondario leggibile anziché su quello primario.
8.4 Informazioni inaccurate o mancanti
A volte Activity Monitor visualizza informazioni che sembrano errate o incomplete.
8.4.1 Verifica dei dati con i DMV
Quando i risultati di Activity Monitor sembrano sospetti, verificali interrogando direttamente i DMV sottostanti. Ad esempio, se il riquadro Processi non mostra alcun blocco ma gli utenti lo segnalano, interroga:
SELECT
blocking_session_id,
session_id,
wait_type,
wait_time,
wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;
Se questa query mostra un blocco che Activity Monitor non ha rilevato, hai confermato un problema di visualizzazione.
8.4.2 Comprensione della tempistica di aggiornamento dei dati
Ricorda che Activity Monitor mostra gli snapshot. Una query eseguita tra intervalli di aggiornamento non verrà visualizzata nelle query costose recenti, a meno che il relativo piano di esecuzione non rimanga nella cache.
Allo stesso modo, le statistiche di attesa nel riquadro Attese Risorse riflettono l'accumulo dall'ultimo snapshot. I carichi di lavoro in rapida evoluzione possono mostrare modelli diversi a ogni aggiornamento.
9. Tecniche avanzate di monitoraggio delle attività
Gli amministratori di database esperti utilizzano Activity Monitor in modi sofisticati per estrarre la massima diagnosiostvalore ico.
9.1 Combinazione di più riquadri per l'analisi della causa principale
La vera potenza di Activity Monitor emerge quando si correlano le informazioni su più riquadri per comprendere problemi complessi di prestazioni.
9.1.1 Correlazione delle attese con i processi
Quando il riquadro Attese risorse mostra tempi di attesa elevati in una categoria, utilizzare il riquadro Processi per identificare le sessioni che presentano tali attese:
- Notare la categoria di attesa con un tempo di attesa cumulativo elevato (ad esempio, "Blocco").
- Passare al riquadro Processi.
- Ordina per Tipo di attesa per raggruppare le sessioni in base al tempo di attesa attuale.
- Cerca le sessioni che mostrano tipi di attesa nella categoria problematica.
- Per quelle sessioni, esaminare il Attendi Risorsa colonna per vedere quali oggetti del database sono coinvolti.
- Fare clic con il tasto destro e selezionare Dettagli per visualizzare il testo della query.
Questa correlazione ti aiuta a passare da "abbiamo attese di blocco" a "questa query specifica è in attesa di blocchi su questa tabella".
9.1.2 Collegamento di query costose a problemi di I/O
Quando il riquadro I/O del file di dati mostra un'elevata attività del disco su un database specifico:
- Nota quali file di database hanno velocità di lettura o scrittura MB/sec elevate.
- Passa alle query costose recenti.
- Ordina per Letture fisiche/sec per identificare le query che leggono molto dal disco.
- Filtrare o identificare visivamente le query in esecuzione sul database con I/O elevato.
- Esaminare i piani di esecuzione di tali query per individuare scansioni di tabelle o indici mancanti che causano un I/O eccessivo.
Questa analisi multi-riquadro collega i sintomi (elevato I/O su disco) alle cause (specifiche query inefficienti).
9.2 Utilizzo di Activity Monitor per la pianificazione della capacità
Sebbene Activity Monitor non memorizzi dati storici, è possibile utilizzarlo strategicamente per le osservazioni sulla pianificazione della capacità.
9.2.1 Identificazione dei modelli di utilizzo di picco
Monitorare l'attività del server in diversi momenti della giornata per identificare i modelli di utilizzo:
- Aprire Activity Monitor durante le ore di punta note.
- Notare i valori di picco del grafico % Processor Time.
- Registrare il numero massimo di attività in attesa.
- Osservare le richieste batch/sec nelle ore di punta.
- Documentare i database più utilizzati nel riquadro Processi.
- Ripetere l'operazione nelle ore non di punta per effettuare un confronto.
Se il tempo di elaborazione nelle ore di punta supera costantemente l'80%, ci si sta avvicinando ai limiti di capacità della CPU. Allo stesso modo, l'aumento dei tempi di attesa indica una crescente contesa delle risorse.
9.2.2 Analisi delle tendenze delle risorse
Sebbene Activity Monitor mostri lo stato attuale, puoi utilizzarlo per controllare a campione le tendenze registrando le metriche chiave nel tempo:
- Acquisisci screenshot del riquadro Panoramica alla stessa ora ogni giorno
- Registra i valori di picco da ciascun grafico
- Confronta settimana dopo settimana per identificare le tendenze di crescita
- Prestare attenzione agli aumenti graduali del tempo medio del processore o delle velocità di I/O
Questa analisi manuale delle tendenze integra soluzioni di monitoraggio più sofisticate e aiuta a giustificare l'espansione della capacità.
9.3 Documentazione delle linee di base delle prestazioni
Stabilire parametri di riferimento per le prestazioni aiuta a riconoscere quando le prestazioni diminuiscono.
9.3.1 Acquisizione delle metriche di base
Durante i periodi di buone prestazioni note, documentare le metriche di Activity Monitor:
- Aprire Activity Monitor durante le normali attività aziendali (non durante i periodi di punta o fuori punta).
- Valori del riquadro Panoramica record:
- Intervallo di tempo tipico del processore %
- Numero medio di attività in attesa
- Velocità normale di I/O del database
- Richieste batch tipiche/sec
- Nota: le categorie del riquadro Attese risorse mostrano most tempo di attesa.
- Documentare il numero di processi attivi in genere nel riquadro Processi.
- Registra le metriche di esecuzione delle query rappresentative dalle query costose recenti.
Conservare questa documentazione di base per riferimento futuro quando si esaminano problemi di prestazioni.
9.3.2 Confronto tra prestazioni attuali e di base
Quando si verificano problemi di prestazioni, confronta le letture correnti di Activity Monitor con la tua linea di base documentata:
- Il tempo di elaborazione è significativamente superiore al valore di riferimento? Concentratevi sulle query che richiedono un uso intensivo della CPU.
- Le attività in attesa sono 2-3 volte superiori ai livelli di base? Indagare sulle attese delle risorse.
- L'I/O è sostanzialmente più alto? Controlla il riquadro I/O del file di dati e le query costose.
- Le richieste batch sono inferiori al valore di base durante le ore di punta? Verifica la presenza di blocchi o problemi di connettività.
Questo confronto ti aiuta a identificare cosa è cambiato e a concentrare opportunamente gli sforzi per la risoluzione dei problemi.
9.4 Creazione di flussi di lavoro di monitoraggio personalizzati
Sviluppare flussi di lavoro sistematici per scenari di indagine comuni per garantire analisi approfondite e ripetibili.
9.4.1 Processo di indagine passo dopo passo
Quando gli utenti segnalano problemi di prestazioni, segui un flusso di lavoro coerente:
- Controllo rapido dello stato di salute: Aprire Activity Monitor ed esaminare i grafici del riquadro Panoramica per individuare anomalie evidenti.
- Controllare il blocco: Espandi il riquadro Processi, filtra per NonBlanks nella colonna Bloccato da.
- Identificare la contesa delle risorse: Riquadro Rivedi Attese Risorse ordinato in base al tempo di attesa.
- Trova query costose: Esamina le query costose recenti ordinate per CPU, quindi esecuzioni, quindi letture.
- Correlare i modelli I/O: Incrocia le query costose con l'attività del riquadro I/O del file di dati.
- Risultati del documento: Acquisisci screenshot e registra gli ID di sessione, i tipi di attesa e i dettagli delle query pertinenti.
- Profonda immersione: Utilizzare le tracce del Profiler, l'analisi del piano di esecuzione e le query DMV per un'indagine dettagliata dei problemi identificati.
9.4.2 Criteri di escalation
Stabilire i criteri per stabilire quando segnalare i problemi o proseguire le indagini:
- Inoltrare immediatamente la richiesta: Catene di blocco della durata >5 minuti, tempo del processore al 100% per >2 minuti, processi di sistema critici che mostrano lo stato SOSPESO.
- Escalation con analisi: Query ricorrenti e costose che consumano >50% della CPU, tempi di risposta I/O costantemente elevati >50 ms, concessioni di memoria che falliscono ripetutamente.
- Approfondisci: Temporary attende la risoluzione in pochi minuti, query con piani non ottimali ma prestazioni accettabili, blocco minore durata <30 secondi.
10. Monitoraggio delle attività in diversi SQL Server versioni
Activity Monitor si è evoluto in SQL Server versioni, con ogni rilascio che apporta miglioramenti e occasionalmente nuovi problemi.
10.1 Monitoraggio attività in SQL Server 2008 e versioni successive
SQL Server Nel 2008 è stato introdotto il moderno design dell'Activity Monitor, rimasto sostanzialmente invariato ancora oggi.
10.1.1 Nuove funzionalità introdotte in SQL Server 2008
Migliori SQL Server La riprogettazione dell'Activity Monitor del 2008 ha apportato notevoli miglioramenti:
- Dashboard grafica con grafici in tempo reale nel riquadro Panoramica
- Interfaccia del riquadro espandibile/comprimibile che sostituisce la vecchia visualizzazione solo griglia
- Riquadro Query costose recenti che mostra i dati aggregati sulle prestazioni delle query
- Riquadro I/O file dati per il monitoraggio dell'attività del disco per file
- Riquadro Attese Risorse migliorato con categorizzazione delle attese
- Menu contestuali del tasto destro del mouse per azioni di processo come l'eliminazione di sessioni e l'avvio di Profiler
- Intervalli di aggiornamento configurabili da 1 secondo a 1 ora
Grazie a queste modifiche Activity Monitor è passato da un semplice elenco di processi a un dashboard di monitoraggio completo.
10.1.2 Modifiche da SQL Server 2005
SQL Server L'Activity Monitor del 2005 era molto più limitato:
- Accessibile tramite la cartella Gestione in Esplora oggetti anziché tramite la barra degli strumenti
- Griglia singola che mostra l'elenco dei processi con informazioni di base
- Nessun grafico o riquadro multiplo
- Nessuna query costosa o monitoraggio I/O
- Informazioni statistiche di attesa limitate
La riprogettazione del 2008 ha rappresentato una rivisitazione completa piuttosto che un miglioramento incrementale.
10.2 Monitoraggio attività in SQL Server 2014/2016
SQL Server Nel 2014 e nel 2016 sono stati apportati miglioramenti incrementali alla raccolta dati di base di Activity Monitor, ma sono state apportate poche modifiche visive.
10.2.1 Miglioramenti e potenziamenti
I principali miglioramenti in queste versioni includevano:
- Migliori prestazioni durante il monitoraggio di server con migliaia di piani memorizzati nella cache
- Funzionalità di filtraggio migliorate nel riquadro Processi
- Migliorata la precisione dell'aggregazione delle statistiche di attesa
- Migliore gestione dell'ordinamento e del filtraggio delle colonne con set di risultati di grandi dimensioni
- Query DMV più efficienti che riducono il sovraccarico di monitoraggio
L'interfaccia principale è rimasta coerente con SQL Server 2008, mantenendo la familiarità per gli amministratori.
10.3 Monitoraggio attività in SQL Server 2019/2022
Recente SQL Server Le versioni continuano l'evoluzione di Activity Monitor concentrandosi su prestazioni e stabilità.
10.3.1 Ultime funzionalità e capacità
SQL Server Activity Monitor 2019 e 2022 include:
- Supporto per i nuovi tipi di attesa introdotti in queste versioni
- Prestazioni di rendering migliorate in SSMS utilizzando la tecnologia WPF
- Migliore gestione di un gran numero di sessioni attive
- Compatibilità migliorata con le piattaforme cloud SQL
- Metriche CPU e I/O più precise
10.3.2 Problemi noti nelle versioni recenti
SQL Server Il 2019 ha introdotto diversi bug in Activity Monitor:
- Stato di pausa permanente: Activity Monitor entra spesso in stato di pausa e non riprende a funzionare, in particolare in SSMS 18.0-18.3. Problema risolto nelle versioni successive di SSMS.
- Errori di connessione remota: Alcune configurazioni impediscono l'apertura di Activity Monitor su istanze remote. Le soluzioni alternative includono l'abilitazione di flag di traccia specifici o l'utilizzo di build SSMS più recenti.
- Problemi di autorizzazione: Le nuove viste di sistema richiedono autorizzazioni aggiuntive non documentate in modo chiaro, causando visualizzazioni vuote anche con VIEW SERVER STATE.
Utilizzare sempre l'ultima versione di SSMS quando si lavora con SQL Server 2019 e 2022 per evitare questi problemi.
11. Casi d'uso pratici ed esempi
Esempi concreti dimostrano come applicare Activity Monitor in modo efficace in scenari comuni di risoluzione dei problemi.
11.1 Caso di studio: diagnosi di un'applicazione Web lenta
Un team di sviluppo segnala che la propria applicazione web è diventata eccessivamente lenta: il caricamento delle pagine richiede 20-30 secondi invece dei normali 2-3 secondi.
11.1.1 Indagine iniziale con riquadro di panoramica
Apri Monitoraggio Attività ed esamina il riquadro Panoramica:
- Il grafico % Processor Time mostra un utilizzo della CPU pari all'85-95%, significativamente superiore al normale valore di base del 30-40%.
- Le attività in attesa oscillano tra 10 e 20, rispetto a una normale base di 0-3.
- L'I/O del database mostra un'attività moderata, intorno ai 50 MB/s.
- Le richieste batch/sec sono inferiori alle aspettative, ovvero 100/sec, rispetto alle tipiche 300-400/sec durante l'orario lavorativo.
Questo schema suggerisce un collo di bottiglia della CPU con contesa di risorse che causa una riduzione della produttività. Il server lavora intensamente ma non elabora molte richieste.
11.1.2 Identificazione della query problematica
Espandi il riquadro Query costose recenti e ordina per Esecuzioni/min:
- La query più in alto mostra 15,000 esecuzioni al minuto.
- Fare clic con il tasto destro e selezionare Modifica testo query per esaminare la query.
- La query è una semplice istruzione SELECT che recupera un singolo record utente:
SELECT * FROM Users WHERE UserId = @UserId. - Per un normale utilizzo dell'applicazione, questa query non dovrebbe essere eseguita 15,000 volte al minuto.
Fare clic con il pulsante destro del mouse sulla query e selezionare Mostra piano di esecuzioneIl piano mostra una scansione della tabella Utenti con un avviso relativo a un indice mancante nella colonna UserId.
Filtra il riquadro Processi per Applicazione per visualizzare solo le connessioni dell'applicazione web. Più sessioni mostrano la stessa query eseguita ripetutamente.
11.1.3 Risoluzione e verifica
Il problema deriva da due fattori: un numero eccessivo di esecuzioni di query e un indice mancante. Passaggi per la risoluzione:
- Crea l'indice mancante:
CREATE NONCLUSTERED INDEX IX_Users_UserId ON Users (UserId); - Contatta il team di sviluppo sulle esecuzioni eccessive. L'indagine rivela un problema di query N+1 nel codice dell'applicazione, in cui un ciclo recupera i dettagli dell'utente per ogni elemento in un elenco.
- Modificare l'applicazione per raggruppare le ricerche degli utenti in un'unica query utilizzando una clausola IN o un parametro con valori di tabella.
- Verifica la correzione monitorando Activity Monitor dopo l'implementazione. L'utilizzo della CPU scende al 35-40%, le esecuzioni al minuto diminuiscono a 200-300 e i tempi di risposta delle applicazioni tornano alla normalità.
11.2 Caso di studio: risoluzione di un problema di blocco
Gli utenti segnalano che il sistema di inserimento degli ordini si blocca periodicamente per 30-60 secondi prima di riprendere a funzionare normalmente.
11.2.1 Rilevamento della catena di blocco
Aprire Activity Monitor durante uno di questi eventi di blocco ed espandere il riquadro Processi:
- Ordina per Session ID per vedere tutte le sessioni organizzate.
- Più sessioni mostrano valori in Bloccato da colonna, tutti puntano all'ID sessione 73.
- La sessione 73 mostra '1' nel Bloccante per la testa colonna, confermando che è la causa principale.
- Migliori Tipo di attesa per le sessioni bloccate viene visualizzato LCK_M_X, a indicare che sono in attesa di blocchi esclusivi.
- Migliori Attendi Risorsa la colonna rivela che il blocco si trova nella tabella Ordini.
11.2.2 Analisi della causa
Fare clic con il pulsante destro del mouse sulla sessione 73 e selezionare Dettagli per visualizzare il comando:
UPDATE Orders
SET Status = 'Processing',
LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);
Questo aggiornamento fa parte di un processo di elaborazione batch che viene eseguito ogni ora. Controllo del Accedi la colonna conferma che la sessione appartiene all'account del servizio di elaborazione batch.
La query mantiene i blocchi sulla tabella Ordini durante l'elaborazione di migliaia di ordini. Tempo di attesa per le sessioni bloccate aumenta costantemente, confermando che questa operazione di lunga durata è il problema.
11.2.3 Implementazione della correzione
Risoluzione a breve termine:
- Dettagli della sessione 73 del documento, inclusi il testo della query e la durata.
- Consentire il completamento naturale dell'aggiornamento poiché si tratta di un'elaborazione batch legittima.
- Al termine, verificare che le sessioni bloccate siano state eliminate e che le normali operazioni siano riprese.
Soluzioni a lungo termine implementate:
- Ripianificare il lavoro batch per funzionare durante le ore non di punta (dalle 2 alle 4 del mattino anziché durante l'orario lavorativo).
- Modificare l'elaborazione batch per aggiornare gli ordini in lotti più piccoli di 100 record alla volta, rilasciando i blocchi tra un lotto e l'altro.
- Aggiungere un indice sulla colonna OrderId per velocizzare l'operazione di aggiornamento.
- Considerare l'isolamento SNAPSHOT per le operazioni di lettura per ridurre l'impatto del blocco.
11.3 Caso di studio: identificazione di esecuzioni di query eccessive
Il monitoraggio del database mostra che l'utilizzo della CPU è gradualmente aumentato nel corso dell'ultimo mese, ma non si sono verificati cambiamenti evidenti nel codice dell'applicazione.
11.3.1 Individuazione dei conteggi delle esecuzioni anomale
Apri Activity Monitor ed esamina il riquadro Recent Expensive Query:
- Ordina per Esecuzioni/min per vedere il most query eseguite frequentemente.
- La query più in alto mostra 37,000 esecuzioni al minuto, un numero molto più alto di qualsiasi altra query.
- Fare clic con il tasto destro e selezionare Modifica testo query.
- La query recupera informazioni sulla categoria del prodotto:
SELECT CategoryId, CategoryName FROM ProductCategories WHERE CategoryId = @CategoryId; - Questa semplice query dovrebbe essere veloce e memorizzabile nella cache, ma viene eseguita decine di migliaia di volte al minuto.
11.3.2 Tracciamento al codice dell'applicazione
Nel riquadro Processi, trova le sessioni che eseguono questa query:
- Notare la Applicazione la colonna mostra "ProductCatalogService".
- Fare clic con il pulsante destro del mouse su una di queste sessioni e selezionare Traccia il processo in SQL Server Profiler.
- SQL Profiler rivela che la query viene eseguita ripetutamente in rapida successione con valori CategoryId diversi.
- Contattare il team di sviluppo che gestisce ProductCatalogService per la revisione del codice.
La revisione del codice rivela il problema: una modifica recente recupera elenchi di prodotti con categorie. Per ogni prodotto nel set di risultati (spesso più di 1,000 prodotti), il codice esegue una chiamata al database separata per recuperare le informazioni sulla categoria, un classico problema di query N+1.
11.3.3 Ottimizzazione dell'applicazione
Implementare una correzione adeguata:
- Modificare la query dell'applicazione per utilizzare un JOIN che recupera i prodotti e le loro categorie in un'unica chiamata al database:
SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE p.Active = 1; - Distribuisci il codice aggiornato e monitorare Activity Monitor.
- Verifica la correzione: Le esecuzioni al minuto per la categoria query scendono da 37,000 a meno di 100 e l'utilizzo complessivo della CPU diminuisce del 40%.
- Documentare la lezione appresa e condividerli con il team di sviluppo per evitare problemi simili in future modifiche al codice.
12. Rilevare potenziali danneggiamenti del database
Sebbene Activity Monitor non sia progettato specificamente per rilevare la corruzione del database, alcuni schemi nella sua visualizzazione potrebbero suggerire problemi di corruzione sottostanti che richiedono ulteriori indagini.
12.1 Sintomi di potenziale danneggiamento del database
Se il database è danneggiato e si sta accedendo, occasionalmente potresti vedere:
1. Nel riquadro Processi:
- Sessioni bloccate nello stato SOSPESO con tipi di attesa insoliti
- Processi che mostrano stati di errore
- Le query falliscono ripetutamente
2. Nel riquadro Attese risorse:
- Tipi di attesa insoliti correlati a I/O che potrebbero indicare problemi del disco (anche se è più probabile che ciò indichi problemi hardware piuttosto che un danneggiamento logico)
3. Nelle recenti query costose:
- Query con letture fisiche anormalmente elevate se tentano ripetutamente di leggere pagine danneggiate
12.2 Ulteriore controllo con DBCC CHECKDB
Quando Activity Monitor mostra sintomi che suggeriscono un potenziale danneggiamento, è necessario eseguire immediatamente DBCC CHECKDB per verificare l'integrità del database. Questo comando analizza tutte le pagine del database, convalida i checksum e verifica la presenza di errori di coerenza logica.
Per saperne di più su come utilizzare DBCC CHECKDB per controllare e correggere i danneggiamenti del database, vedere il nostro guida completa DBCC CHECKDB.
12.3 Riparazione con strumenti professionali
Se DBCC CHECKDB conferma il danneggiamento del database, sono disponibili diverse opzioni per la riparazione:
- L'approccio preferito è il ripristino da un backup noto e funzionante. Vedere la nostra guida completa su come eseguire il backup e il ripristino SQL Server banche dati.
- In caso di danneggiamenti di lieve entità, DBCC CHECKDB con REPAIR_REBUILD potrebbe risolvere i problemi.
- Per database critici senza backup recenti, professionale Software di recupero SQL e i servizi possono spesso recuperare dati che le opzioni di riparazione integrate non riescono a recuperare.
13. CONCLUSIONE
SQL Server Activity Monitor è uno strumento prezioso per gli amministratori di database, in quanto fornisce informazioni immediate sulle prestazioni del server e aiuta a diagnosticare i problemi in modo rapido ed efficace.
13.1 Riepilogo dei punti chiave
In questa guida abbiamo esplorato come Activity Monitor ti aiuta a comprendere e risolvere i problemi SQL Server prestazione:
- Activity Monitor fornisce visibilità in tempo reale su processi, attese, query e I/O tramite un'interfaccia grafica organizzata.
- I cinque riquadri (Panoramica, Processi, Attese risorse, I/O file dati e Query costose recenti) offrono ciascuno prospettive uniche sull'attività del server.
- Gli scenari di risoluzione dei problemi più comuni, come esecuzioni eccessive di query, catene di blocco e utilizzo elevato della CPU, diventano gestibili con un'indagine sistematica di Activity Monitor.
- Sebbene potente, Activity Monitor presenta delle limitazioni, tra cui la mancanza di dati storici, il raggruppamento dei tipi di attesa e il sovraccarico di monitoraggio che influiscono sulla sua applicazione.cabilità.
- L'integrazione di Activity Monitor con query DMV, sp_WhoIsActive, Extended Events e potenzialmente strumenti di terze parti crea una strategia di monitoraggio completa.
- Seguendo le best practice per gli intervalli di aggiornamento, chiudendo Activity Monitor quando non è in uso e combinando più riquadri per la correlazione, se ne massimizza il valore riducendo al minimo l'impatto.
13.2 Activity Monitor come parte del tuo kit di strumenti
Activity Monitor dovrebbe fungere da primo strumento di risposta per le indagini sulle prestazioni, non da unico strumento. Il suo punto di forza risiede nel fornire visibilità immediata durante la risoluzione attiva dei problemi, aiutando a determinare rapidamente se il database rappresenta un collo di bottiglia e a identificare quali aspetti specifici necessitano di indagini più approfondite.
Considera Activity Monitor come un'analogia con il cruscotto della tua auto: ti segnala immediatamente se qualcosa non va e ti aiuta a identificare l'area generale che genera il problema. Proprio come il cruscotto della tua auto non ti dice esattamente perché si è accesa la spia del motore, Activity Monitor ti segnala i problemi senza rivelarne sempre la causa principale. Un'analisi più approfondita richiede strumenti e competenze aggiuntive.
Integra Activity Monitor in un toolkit più ampio che include analisi del piano di esecuzione, monitoraggio delle statistiche di attesa, soluzioni di monitoraggio storico e best practice per le prestazioni. Utilizzalo insieme a strategie di indicizzazione appropriate, tecniche di ottimizzazione delle query e pianificazione della capacità.
13.3 Continuare il tuo percorso di apprendimento
Padroneggiare Activity Monitor è solo il primo passo per diventare un efficace amministratore di database. Continua ad ampliare le tue competenze:
- Imparare a interpretare i piani di esecuzione e a identificare le operazioni inefficienti
- Comprensione SQL Server statistiche di attesa e le loro implicazioni
- Studio delle tecniche di progettazione e ottimizzazione degli indici
- Esplorare SQL Serverl'architettura e il modo in cui elabora le query
- Praticare metodologie sistematiche di risoluzione dei problemi
- Acquisire esperienza con gli eventi estesi per un tracciamento dettagliato
- Comprensione dei livelli di isolamento delle transazioni e del loro impatto sulle prestazioni
Ogni indagine sulle prestazioni con Activity Monitor ti insegna qualcosa di nuovo su come SQL Server funziona e come le applicazioni interagiscono con i database. Documenta i tuoi risultati, condividi le conoscenze con i colleghi e crea una libreriarary di soluzioni per problemi comuni.
13.4 Risorse aggiuntive
Amplia le tue conoscenze con queste preziose risorse:
- Apri Monitoraggio attività in SQL Server Studio di gestione (SSMS)
: Ufficiale SQL Server documentazione su come aprire Activity Monitor in SQL Server Studio di gestione (SSMS).
- Activity Monitor
: Ufficiale SQL Server documento su come utilizzare Activity Monitor.
14. Domande frequenti (FAQ)
D: Cos'è SQL Server Monitoraggio attività?
A: SQL Server Activity Monitor è uno strumento integrato all'interno SQL Server Management Studio che visualizza informazioni in tempo reale sui processi in esecuzione su un SQL Server istanza e il loro impatto sulle risorse del server. Fornisce una dashboard grafica con cinque riquadri che mostrano diversi aspetti dell'attività del server, tra cui l'utilizzo del processore, le attività in attesa, le velocità di I/O, le sessioni attive e le query costose.
D: Come faccio ad aprire Activity Monitor in SSMS?
A: È possibile aprire Activity Monitor utilizzando quattro metodi: (1) Fare clic sull'icona Activity Monitor nella barra degli strumenti SSMS, (2) Fare clic con il pulsante destro del mouse sul SQL Server nome dell'istanza in Esplora oggetti e seleziona Activity Monitor, (3) Premere Ctrl + altro + A, oppure (4) Configurare SSMS per avviarlo automaticamente tramite Strumenti -> Opzioni -> Ambiente -> Startup.
D: Quali autorizzazioni mi servono per utilizzare Activity Monitor?
A: Hai bisogno di VISUALIZZA LO STATO DEL SERVER permesso di vedere most Informazioni sul Monitoraggio Attività. Per il riquadro I/O del file di dati, è inoltre necessario CREA DATABASE, MODIFICARE QUALSIASI DATABASE, o VISUALIZZA QUALSIASI DEFINIZIONE autorizzazioni. Senza queste autorizzazioni, Activity Monitor potrebbe aprirsi ma visualizzare riquadri vuoti.
D: Perché il mio Activity Monitor è in pausa o non funziona?
R: Activity Monitor in genere si interrompe a causa di problemi di autorizzazione, versioni obsolete di SSMS o connessioni remote disabilitate. Per risolvere: (1) Aggiornare SSMS all'ultima versione, (2) Verificare di disporre dell'autorizzazione VIEW SERVER STATE, (3) Verificare che le connessioni remote siano abilitate sul SQL Server esempio, (4) Restart SSMS e (5) Provare a connettersi con l'autenticazione di Windows invece dell'autenticazione SQL, se applicabilecabloro.
D: Qual è la differenza tra Activity Monitor e sp_WhoIsActive?
R: Activity Monitor è uno strumento grafico integrato in SSMS che fornisce riquadri organizzati per diversi aspetti del monitoraggio. sp_WhoIsActive è una stored procedure gratuita creata dalla community che restituisce informazioni dettagliate sulla sessione in un unico set di risultati con tipi di attesa, dettagli sui blocchi e opzioni di personalizzazione più specifici rispetto ad Activity Monitor. Activity Monitor è più adatto all'esplorazione visiva, mentre sp_WhoIsActive eccelle nel monitoraggio tramite script e fornisce informazioni più dettagliate.
D: Activity Monitor influisce sulle prestazioni del server?
R: Sì, Activity Monitor ha un overhead misurabile perché interroga i DMV di sistema a ogni intervallo di aggiornamento. L'impatto aumenta con frequenze di aggiornamento inferiori: Microsoft avverte che intervalli inferiori a 10 secondi possono influire sulle prestazioni del server. Chiudere sempre Activity Monitor quando non lo si utilizza attivamente e considerare intervalli di aggiornamento di 30-60 secondi sui server di produzione sottoposti a carico elevato.
D: Posso ottenere i dati di Activity Monitor utilizzando T-SQL?
R: Sì, Activity Monitor interroga le viste di gestione dinamica del sistema come sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats e sys.dm_exec_query_stats. È possibile interrogare queste DMV direttamente tramite T-SQL per recuperare informazioni equivalenti a livello di programmazione, abilitando script di monitoraggio personalizzati e raccolta dati automatizzata.
D: Qual è l'intervallo di aggiornamento predefinito?
R: L'intervallo di aggiornamento predefinito è di 10 secondi. È possibile modificarlo facendo clic con il pulsante destro del mouse in un punto qualsiasi del riquadro Panoramica, selezionando Intervallo di aggiornamentoe scegliendo tra le opzioni predefinite: 1 secondo, 5 secondi, 10 secondi, 30 secondi, 1 minuto o 1 ora. Intervalli inferiori offrono visualizzazioni più in tempo reale, ma aumentano il carico di monitoraggio.
D: Come posso aprire automaticamente Activity Monitor su SSMS?tartup?
A: Configurare l'avvio automatico tramite le opzioni SSMS: andare a Strumenti -> Opzioni -> Ambiente -> Startup, Quindi seleziona Apri Esplora oggetti e Monitoraggio attività dal A startubo menu a discesa. Activity Monitor si aprirà automaticamente ogni volta che ti connetti a un server in SSMS.
D: Quali sono i limiti di Activity Monitor?
A: Le principali limitazioni includono: (1) Nessuna capacità di archiviazione dei dati storici o di trend, (2) I tipi di attesa sono raggruppati in categorie anziché essere mostrati in modo specifico, (3) Alcuni tipi di attesa come CXPACKET potrebbero non essere visualizzati, (4) Gli snapshot point-in-time potrebbero non rilevare problemi transitori, (5) Il sovraccarico di monitoraggio può avere un impatto sui server occupati, (6) Nessun meccanismo di avviso per il monitoraggio proattivo e (7) Impossibile aggregare i dati su più SQL Server istanze. Per queste esigenze, integra Activity Monitor con Eventi estesi, set di raccolta dati o strumenti di monitoraggio di terze parti.
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 di gruppi di disponibilità Always On e lo sviluppo di strategie di backup e ripristino automatizzate per sistemi aziendali mission-critical.
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.


















