Monitorare i componenti di SQL ServerMonitor SQL Server Components

Il monitoraggio è importante perché SQL ServerSQL Server fornisce un servizio in un ambiente dinamico.Monitoring is important because SQL ServerSQL Server provides a service in a dynamic environment. i dati nell'applicazione cambiano,The data in the application changes. il tipo di accesso richiesto dagli utenti cambia,The type of access that users require changes. la modalità di connessione degli utenti cambia.The way that users connect changes. Possono cambiare anche i tipi delle applicazioni che accedono a SQL ServerSQL Server , ma SQL ServerSQL Server è in grado di gestire automaticamente le risorse a livello di sistema, quali la memoria e lo spazio su disco, per ridurre al minimo la necessità di ingenti interventi di ottimizzazione manuale a livello di sistema.The types of applications accessing SQL ServerSQL Server may even change, but SQL ServerSQL Server automatically manages system-level resources, such as memory and disk space, to minimize the need for extensive system-level manual tuning. Il monitoraggio consente agli amministratori di identificare le tendenze delle prestazioni per determinare i casi in cui è necessario apportare modifiche.Monitoring lets administrators identify performance trends to determine if changes are necessary.

Per monitorare in modo efficiente qualsiasi componente di SQL ServerSQL Server , effettuare le operazioni seguenti:To monitor any component of SQL ServerSQL Server effectively:

  1. Determinare gli obiettivi del monitoraggio.Determine your monitoring goals.

  2. Selezionare lo strumento appropriato.Select the appropriate tool.

  3. Identificare i componenti di cui eseguire il monitoraggio.Identify components to monitor.

  4. Selezionare la metrica per tali componenti.Select metrics for those components.

  5. Eseguire il monitoraggio del server.Monitor the server.

  6. Analizzare i dati.Analyze the data.

    I singoli passaggi sono descritti in dettaglio di seguito.These steps are discussed in turn below.

Individuazione degli obiettivi del monitoraggioDetermine Your Monitoring Goals

Per eseguire in modo efficace il monitoraggio di SQL ServerSQL Server , è necessario identificare chiaramente il motivo del monitoraggio.To monitor SQL ServerSQL Server effectively you should clearly identify your reason for monitoring. Di seguito sono riportati alcuni dei possibili motivi:Reasons can include the following:

  • Definire una base di riferimento delle prestazioni.Establish a baseline for performance.

  • Identificare le variazioni di prestazioni nel tempo.Identify performance changes over time.

  • Diagnosticare problemi specifici relativi alle prestazioni.Diagnose specific performance problems.

  • Identificare componenti o processi da ottimizzare.Identify components or processes to optimize.

  • Confrontare l'effetto di diverse applicazioni client in termini di prestazioni.Compare the effect of different client applications on performance.

  • Controllare l'attività degli utenti.Audit user activity.

  • Testare un server con carichi diversi.Test a server under different loads.

  • Testare l'architettura del database.Test database architecture.

  • Testare i piani di manutenzione.Test maintenance schedules.

  • Testare i piani di backup e ripristino.Test backup and restore plans.

  • Stabilire i casi in cui è necessario modificare la configurazione hardware.Determining when to modify your hardware configuration.

Selezione dello strumento appropriatoSelect the Appropriate Tool

Dopo aver determinato i motivi per cui eseguire il monitoraggio, è necessario selezionare gli strumenti appropriati per il tipo di monitoraggio scelto.After determining why you are monitoring, you should select the appropriate tools for that type of monitoring. Nell'ambiente operativo Windows e in SQL ServerSQL Server è incluso un set completo di strumenti per il monitoraggio dei server in ambienti caratterizzati da un elevato numero di transazioni.The Windows operating system and SQL ServerSQL Server provide a complete set of tools to monitor servers in transaction-intensive environments. 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.These tools clearly reveal the condition of an instance of the SQL Server Database Engine or an instance of SQL Server Analysis Services.

Di seguito sono riportati gli strumenti disponibili in Windows per il monitoraggio delle applicazioni in esecuzione in un server:Windows provides the following tools for monitoring applications that are running on a 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.System Monitor, which lets you collect and view real-time data about activities such as memory, disk, and processor usage

  • Avvisi e registri di prestazioniPerformance logs and alerts

  • Gestione attivitàTask Manager

    Per ulteriori informazioni sugli strumenti di Windows Server o Windows, vedere la documentazione di Windows.For more information about Windows Server or Windows tools, see the Windows documentation.

    SQL ServerSQL Server fornisce gli strumenti seguenti per il monitoraggio dei componenti di SQL ServerSQL Server: provides the following tools for monitoring components of SQL ServerSQL Server:

  • Traccia SQLSQL Trace

  • SQL Server ProfilerSQL Server Profiler

  • Distributed Replay UtilityDistributed Replay Utility

  • SQL Server Management StudioSQL Server Management Studio Monitoraggio attività Activity Monitor

  • SQL Server Management StudioSQL Server Management Studio Showplan grafico Graphical Showplan

  • Stored procedureStored procedures

  • Comandi DBCC (Database Console Commands)Database Console Commands (DBCC)

  • Funzioni predefiniteBuilt-in functions

  • Flag di tracciaTrace flags

    Per altre informazioni sugli strumenti di monitoraggio di SQL ServerSQL Server , vedere Strumenti per il monitoraggio e l'ottimizzazione delle prestazioni.For more information about SQL ServerSQL Server monitoring tools, see Performance Monitoring and Tuning Tools.

Identificazione dei componenti di cui eseguire il monitoraggioIdentify the Components to Monitor

Il terzo passaggio della procedura di monitoraggio di un'istanza di SQL ServerSQL Server consiste nell'identificazione dei componenti monitorati.The third step to monitoring an instance of SQL ServerSQL Server is to identify the components that you monitor. Se, ad esempio, si utilizza SQL Server ProfilerSQL Server Profiler per tracciare un server, è possibile definire la traccia per raccogliere dati su eventi specifici.For example, if you are using SQL Server ProfilerSQL Server Profiler to trace a server you can define the trace to collect data about specific events. È inoltre possibile escludere eventi non applicabili alla situazione corrente.You can also exclude events that do not apply to your situation.

Selezione della metrica per i componenti monitoratiSelect Metrics for Monitored Components

Dopo aver identificato i componenti di cui eseguire il monitoraggio, è necessario determinarne la metrica.After identifying the components to monitor, determine the metrics for components you monitor. Dopo aver selezionato gli eventi da includere in una traccia, è, ad esempio, possibile scegliere di includere solo i dati specifici sugli eventi.For example, after selecting the events to include in a trace, you can choose to include only specific data about the events. Limitando la traccia ai soli dati pertinenti si ridurranno al minimo le risorse di sistema necessarie per eseguire la traccia.Limiting the trace to data that is relevant to the trace minimizes the system resources required to perform the tracing.

Monitoraggio del serverMonitor the Server

Per eseguire il monitoraggio del server, utilizzare lo strumento configurato per la raccolta dei dati.To monitor the server, run the monitoring tool that you have configured to gather data. Dopo aver definito una traccia, è, ad esempio, possibile eseguire la traccia per raccogliere i dati sugli eventi generati nel server.For example, after a trace is defined, you can run the trace to gather data about events raised in the server.

Analisi dei datiAnalyze the Data

Al termine della traccia, analizzare i dati per verificare se sono stati raggiunti gli obiettivi di monitoraggio.After the trace has finished, analyze the data to see if you have achieved your monitoring goal. In caso contrario, modificare i componenti o la metrica utilizzati per il monitoraggio del server.If you have not, modify the components or metrics that you used to monitor the server.

Di seguito viene descritto il processo di acquisizione dei dati di evento e di utilizzo di tali dati.The following outlines the process for capturing event data and putting it to use.

  1. Applicare filtri per limitare i dati di evento raccolti.Apply filters to limit the event data collected.

    La limitazione dei dati di evento consente di concentrarsi sugli eventi pertinenti per lo scenario di monitoraggio.Limiting the event data allows for the system to focus on the events pertinent to the monitoring scenario. 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.For example, if you want to monitor slow queries, you can use a filter to monitor only those queries issued by the application that take more than 30 seconds to run against a particular database. Per altre informazioni, vedere Impostare un filtro di traccia (Transact-SQL) e Filtrare eventi in una traccia (SQL Server Profiler).For more information, see Set a Trace Filter (Transact-SQL) and Filter Events in a Trace (SQL Server Profiler).

  2. Eseguire il monitoraggio degli eventi (acquisizione).Monitor (capture) events.

    Non appena viene abilitato, il monitoraggio acquisisce i dati dall'applicazione specificata, dall'istanza di SQL ServerSQL Servero dal sistema operativo.As soon as it is enabled, active monitoring captures data from the specified application, instance of SQL ServerSQL Server, or operating system. 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.For example, when disk activity is monitored using System Monitor, monitoring captures event data, such as disk reads and writes, and displays it on the screen. Per altre informazioni, vedere Monitoraggio dell'utilizzo delle risorse(Monitor di sistema).For more information, see Monitor Resource Usage (System Monitor).

  3. Salvare i dati evento acquisiti.Save captured event data.

    Il salvataggio dei dati evento acquisiti consente di poterli analizzare in un secondo momento o persino di riprodurli tramite Distributed Replay Utility o SQL Server ProfilerSQL Server Profiler.Saving captured event data lets you analyze it later or even replay it using the Distributed Replay Utility or SQL Server ProfilerSQL 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.Captured event data is saved to a file that can be loaded back into the tool that originally created it for analysis. SQL Server ProfilerSQL Server Profiler consente il salvataggio dei dati evento in una tabella di SQL ServerSQL Server . permits event data to be saved to a SQL ServerSQL Server table. Il salvataggio dei dati evento acquisiti è importante per la creazione di dati di riferimento per le prestazioni.Saving captured event data is important when you are creating a performance baseline. 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.The performance baseline data is saved and used, when comparing recently captured event data, to determine whether performance is optimal. Per altre informazioni, vedere Modelli e autorizzazioni di SQL Server Profiler.For more information, see SQL Server Profiler Templates and Permissions.

  4. Creare modelli di traccia contenenti le impostazioni specificate per l'acquisizione degli eventi.Create trace templates that contain the settings specified to capture the events.

    I modelli di traccia includono informazioni specifiche sugli eventi stessi, i dati di evento e i filtri utilizzati per l'acquisizione dei dati.Trace templates include specifications about the events themselves, event data, and filters that are used to capture data. È 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.These templates can be used to monitor a specific set of events later without redefining the events, event data, and filters. 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.For example, if you want to frequently monitor the number of deadlocks, and the users involved in those deadlocks, you can create a template defining those events, event data, and event filters; save the template; and reapply the filter the next time that you want to monitor deadlocks. SQL Server ProfilerSQL Server Profiler usa modelli di traccia per questo scopo. uses trace templates for this purpose. Per altre informazioni, vedere Impostare i valori predefiniti per una definizione di traccia (SQL Server Profiler)e Creare un modello di traccia (SQL Server Profiler).For more information, see Set Trace Definition Defaults (SQL Server Profiler) and Create a Trace Template (SQL Server Profiler).

  5. Analizzare i dati evento acquisiti.Analyze captured event data.

    Ai fini dell'analisi, i dati evento acquisiti e salvati vengono caricati nell'applicazione utilizzata per l'acquisizione.To be analyzed, the captured event data is loaded into the application that captured the data. È, ad esempio, possibile caricare nuovamente in SQL Server ProfilerSQL Server Profiler una traccia acquisita di SQL Server ProfilerSQL Server Profiler per attività di visualizzazione e analisi.For example, a captured trace from SQL Server ProfilerSQL Server Profiler can be reloaded into SQL Server ProfilerSQL Server Profiler for viewing and analysis. Per altre informazioni, vedere Visualizzare e analizzare le tracce con SQL Server Profiler.For more information, see View and Analyze Traces with SQL Server Profiler.

    L'analisi dei dati di evento consente di individuare gli eventi verificatisi e di determinarne le cause.Analyzing event data involves determining what is occurring and why. 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.This information lets you make changes that can improve performance, such as adding more memory, changing indexes, correcting coding problems with Transact-SQL statements or stored procedures, and so on, depending on the type of analysis performed. È ad esempio possibile utilizzare Ottimizzazione guidata Motore di databaseDatabase Engine per analizzare una traccia acquisita di SQL Server ProfilerSQL Server Profiler e creare indicazioni per gli indici sulla base dei risultati.For example, you can use the Motore di databaseDatabase Engine Tuning Advisor to analyze a captured trace from SQL Server ProfilerSQL Server Profiler and make index recommendations based on the results.

  6. Riprodurre i dati di evento acquisiti.Replay captured event data.

    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.Event replay lets you establish a test copy of the database environment from which the data was captured, and then repeat the captured events as they occurred originally on the real system. Questa funzionalità è disponibile solo con Distributed Replay Utility o SQL Server ProfilerSQL Server Profiler.This capability is only available with the Distributed Replay Utility or SQL Server ProfilerSQL 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.You can replay the events at the same speed as they originally occurred, as fast as possible (to stress the system), or more likely, one step at a time (to analyze the system after each event has occurred). La possibilità di analizzare eventi reali in un ambiente di prova consente di evitare danni al sistema di produzione.By analyzing the exact events in a test environment, you can prevent harm to the production system. Per altre informazioni, vedere Riprodurre le tracce.For more information, see Replay Traces.