Share via


Monitorare i componenti di SQL Server

Il monitoraggio è importante perché SQL Server fornisce un servizio in un ambiente dinamico. i dati nell'applicazione cambiano, il tipo di accesso richiesto dagli utenti cambia, la modalità di connessione degli utenti cambia. I tipi di applicazioni che accedono SQL Server possono anche cambiare, ma SQL Server gestisce automaticamente le risorse a livello di sistema, ad esempio memoria e spazio su disco, per ridurre al minimo la necessità di ottimizzazione manuale a livello di sistema estesa. Il monitoraggio consente agli amministratori di identificare le tendenze delle prestazioni per determinare i casi in cui è necessario apportare modifiche.

Per monitorare in modo efficace qualsiasi componente di SQL Server:

  1. Determinare gli obiettivi del monitoraggio.

  2. Selezionare lo strumento appropriato.

  3. Identificare i componenti di cui eseguire il monitoraggio.

  4. Selezionare la metrica per tali componenti.

  5. Eseguire il monitoraggio del server.

  6. Analizzare i dati.

I singoli passaggi sono descritti in dettaglio di seguito.

Individuazione degli obiettivi del monitoraggio

Per monitorare SQL Server in modo efficace, è necessario identificare chiaramente il motivo per il monitoraggio. Di seguito sono riportati alcuni dei possibili motivi:

  • Definire una base di riferimento delle prestazioni.

  • Identificare le variazioni di prestazioni nel tempo.

  • Diagnosticare problemi specifici relativi alle prestazioni.

  • Identificare componenti o processi da ottimizzare.

  • Confrontare l'effetto di diverse applicazioni client in termini di prestazioni.

  • Controllare l'attività degli utenti.

  • Testare un server con carichi diversi.

  • Testare l'architettura del database.

  • Testare i piani di manutenzione.

  • Testare i piani di backup e ripristino.

  • Stabilire i casi in cui è necessario modificare la configurazione hardware.

Selezione dello strumento appropriato

Dopo aver determinato i motivi per cui eseguire il monitoraggio, è necessario selezionare gli strumenti appropriati per il tipo di monitoraggio scelto. Il sistema operativo Windows e SQL Server offrono un set completo di strumenti per monitorare i server in ambienti con utilizzo intensivo delle transazioni. Tali strumenti consentono di ottenere informazioni sulla condizione di un'istanza di Motore di database di SQL Server o di un'istanza di SQL Server Analysis Services.

Di seguito sono riportati gli strumenti disponibili in Windows per il monitoraggio delle applicazioni in esecuzione in un server:

  • Monitor di sistema, che consente di raccogliere e visualizzare dati in tempo reale su attività quali l'utilizzo della memoria, del disco e del processore.

  • Avvisi e registri di prestazioni

  • Gestione attività

Per ulteriori informazioni sugli strumenti di Windows Server o Windows, vedere la documentazione di Windows.

SQL Server fornisce gli strumenti seguenti per il monitoraggio dei componenti di SQL Server:

  • Traccia SQL

  • SQL Server Profiler

  • Distributed Replay Utility

  • Monitoraggio attività SQL Server Management Studio

  • SQL Server Management Studio showplan grafico

  • Stored procedure

  • Comandi DBCC (Database Console Commands)

  • Funzioni predefinite

  • Flag di traccia

Per altre informazioni sugli strumenti di monitoraggio SQL Server, vedere Strumenti di monitoraggio e ottimizzazione delle prestazioni.

Identificazione dei componenti di cui eseguire il monitoraggio

Il terzo passaggio per il monitoraggio di un'istanza di SQL Server consiste nell'identificare i componenti monitorati. Ad esempio, se si usa SQL Server Profiler per tracciare un server, è possibile definire la traccia per raccogliere dati relativi a eventi specifici. È inoltre possibile escludere eventi non applicabili alla situazione corrente.

Selezione della metrica per i componenti monitorati

Dopo aver identificato i componenti di cui eseguire il monitoraggio, è necessario determinarne la metrica. Dopo aver selezionato gli eventi da includere in una traccia, è, ad esempio, possibile scegliere di includere solo i dati specifici sugli eventi. Limitando la traccia ai soli dati pertinenti si ridurranno al minimo le risorse di sistema necessarie per eseguire la traccia.

Monitoraggio del server

Per eseguire il monitoraggio del server, utilizzare lo strumento configurato per la raccolta dei dati. Dopo aver definito una traccia, è, ad esempio, possibile eseguire la traccia per raccogliere i dati sugli eventi generati nel server.

Analisi dei dati

Al termine della traccia, analizzare i dati per verificare se sono stati raggiunti gli obiettivi di monitoraggio. In caso contrario, modificare i componenti o la metrica utilizzati per il monitoraggio del server.

Di seguito viene descritto il processo di acquisizione dei dati di evento e di utilizzo di tali dati.

  1. Applicare filtri per limitare i dati di evento raccolti.

    La limitazione dei dati di evento consente di concentrarsi sugli eventi pertinenti per lo scenario di monitoraggio. Se, ad esempio, si desidera eseguire il monitoraggio per individuare le query lente, è possibile utilizzare un filtro per monitorare solo le query inviate dall'applicazione, per le quali il tempo di esecuzione è superiore ai 30 secondi in un particolare database. Per altre informazioni, vedere Impostare un filtro di traccia (Transact-SQL) e filtrare gli eventi in una traccia (SQL Server Profiler).

  2. Eseguire il monitoraggio degli eventi (acquisizione).

    Non appena è abilitata, il monitoraggio attivo acquisisce i dati dall'applicazione specificata, l'istanza di SQL Server o il sistema operativo. Se, ad esempio, si esegue il monitoraggio dell'attività del disco tramite Monitor di sistema, vengono acquisiti dati evento quali le letture e le scritture su disco. Questi dati verranno quindi visualizzati sullo schermo. Per altre informazioni, vedere Monitorare l'utilizzo delle risorse (Monitoraggio sistema) .

  3. Salvare i dati evento acquisiti.

    Il salvataggio dei dati degli eventi acquisiti consente di analizzarlo in un secondo momento o anche di eseguirne la riproduzione usando l'utilità di Riesecuzione distribuita o l'SQL Server Profiler. I dati evento acquisiti vengono salvati in un file che può essere ricaricato e analizzato nello strumento in cui è stato creato in origine. SQL Server Profiler consente di salvare i dati degli eventi in una tabella SQL Server. Il salvataggio dei dati evento acquisiti è importante per la creazione di dati di riferimento per le prestazioni. I dati di riferimento per le prestazioni vengono salvati e utilizzati per il confronto con dati evento più recenti allo scopo di verificare se le prestazioni sono ottimali. Per altre informazioni, vedere Modelli e autorizzazioni di SQL Server Profiler.

  4. Creare modelli di traccia contenenti le impostazioni specificate per l'acquisizione degli eventi.

    I modelli di traccia includono informazioni specifiche sugli eventi stessi, i dati di evento e i filtri utilizzati per l'acquisizione dei dati. È possibile utilizzare tali modelli per eseguire il monitoraggio di un set di eventi specifico in un secondo momento senza ridefinire gli eventi, i dati di evento e i filtri. Se, ad esempio, si desidera eseguire un monitoraggio frequente del numero di deadlock e degli utenti interessati, è possibile creare un modello per la definizione di tali eventi, dati evento e filtri evento, salvare il modello e quindi riapplicare il filtro in occasione del successivo monitoraggio dei deadlock. SQL Server Profiler usa modelli di traccia per questo scopo. Per altre informazioni, vedere Impostare impostazioni predefinite di definizione di traccia (SQL Server Profiler) e Creare un modello di traccia (SQL Server Profiler).

  5. Analizzare i dati evento acquisiti.

    Ai fini dell'analisi, i dati evento acquisiti e salvati vengono caricati nell'applicazione utilizzata per l'acquisizione. Ad esempio, una traccia acquisita da SQL Server Profiler può essere ricaricata in SQL Server Profiler per la visualizzazione e l'analisi. Per altre informazioni, vedere Visualizzare e analizzare le tracce con SQL Server Profiler.

    L'analisi dei dati di evento consente di individuare gli eventi verificatisi e di determinarne le cause. In base a tali informazioni è possibile apportare modifiche che possono incidere positivamente sulle prestazioni, ad esempio aggiungere memoria, modificare gli indici, risolvere problemi di codifica di istruzioni Transact-SQL o stored procedure e così via, a seconda del tipo di analisi eseguito. Ad esempio, è possibile usare il Ottimizzazione guidata motore di database per analizzare una traccia acquisita da SQL Server Profiler e apportare raccomandazioni sull'indice in base ai risultati.

  6. Riprodurre i dati di evento acquisiti.

    In tal modo è possibile creare una copia di prova dell'ambiente di database da cui sono stati acquisiti i dati e quindi ripetere gli eventi acquisiti così come si sono verificati nel sistema reale. Questa funzionalità è disponibile solo con l'utilità Riesecuzione distribuita o SQL Server Profiler. È possibile riprodurre gli eventi con la stessa velocità originale, nel modo più rapido possibile (per sottoporre il sistema a condizioni estreme) oppure, come è più probabile, un passaggio per volta per analizzare il sistema dopo ogni singolo evento. La possibilità di analizzare eventi reali in un ambiente di prova consente di evitare danni al sistema di produzione. Per altre informazioni, vedere Riprodurre le tracce.