Individuare i colli di bottigliaIdentify Bottlenecks

In seguito all'accesso simultaneo alle risorse condivise si possono verificare colli di bottiglia.Simultaneous access to shared resources causes bottlenecks. I colli di bottiglia in genere sono inevitabili e presenti in qualsiasi sistema software.In general, bottlenecks are present in every software system and are inevitable. È tuttavia necessario identificare e ottimizzare le situazioni di eccesso di domanda, in quanto una domanda eccessiva delle risorse condivise comporta un rallentamento dei tempi di risposta.However, excessive demands on shared resources cause poor response time and must be identified and tuned.

Le possibili cause dei colli di bottiglia sono:Causes of bottlenecks include:

  • Risorse insufficienti che rendono necessari l'aggiunta di componenti o l'aggiornamento dei componenti disponibili.Insufficient resources, requiring additional or upgraded components.

  • Carichi di lavoro non distribuiti equamente tra risorse dello stesso tipo, ad esempio monopolizzazione di un disco.Resources of the same type among which workloads are not distributed evenly; for example, one disk is being monopolized.

  • Funzionamento non corretto delle risorse.Malfunctioning resources.

  • Configurazione non corretta delle risorse.Incorrectly configured resources.

Analisi dei colli di bottigliaAnalyzing Bottlenecks

La durata eccessiva di alcuni eventi segnala la presenza di colli di bottiglia che è possibile ottimizzare.Excessive durations for various events are indicators of bottlenecks that can be tuned.

Esempio:For example:

  • È possibile che un altro componente impedisca che il processo di caricamento raggiunga il componente in uso, con un conseguente incremento dei tempi necessari per completare il caricamento.Some other component may prevent the load from reaching this component thereby increasing the time to complete the load.

  • Le richieste client potrebbero richiedere tempi più lunghi a causa di traffico di rete intenso.Client requests may take longer due to network congestion.

    Per la valutazione delle prestazioni del server allo scopo di individuare eventuali colli di bottiglia, è necessario eseguire il monitoraggio delle cinque aree fondamentali descritte nella tabella seguente.Following are five key areas to monitor when tracking server performance to identify bottlenecks.

Possibile area in cui è presente un collo di bottigliaPossible bottleneck area Effetti sul serverEffects on the server
Utilizzo della memoriaMemory usage Se la memoria allocata per Microsoft SQL ServerSQL Server o disponibile per il sistema non è sufficiente, le prestazioni risultano inferiori.Insufficient memory allocated or available to Microsoft SQL ServerSQL Server degrades performance. I dati infatti devono essere letti nel disco anziché direttamente nella cache dei dati.Data must be read from the disk rather than directly from the data cache. Microsoft Windows NT esegue un paging eccessivo con uno swapping dei dati da e nel disco in base alle pagine richieste.Microsoft Windows operating systems perform excessive paging by swapping data to and from the disk as the pages are needed.
Utilizzo della CPUCPU utilization Se la frequenza di utilizzo della CPU risulta costantemente elevata, potrebbe essere necessario ottimizzare le query Transact-SQLTransact-SQL o aggiornare la CPU.A chronically high CPU utilization rate may indicate that Transact-SQLTransact-SQL queries need to be tuned or that a CPU upgrade is needed.
Input/output (I/O) del discoDisk input/output (I/O) Transact-SQLTransact-SQL le query possono essere ottimizzate per ridurre le operazioni di I/O del disco non necessarie, ad esempio tramite l'uso di indici. queries can be tuned to reduce unnecessary I/O; for example, by employing indexes.
Connessioni utenteUser connections Se il numero di utenti che accede al server simultaneamente è molto elevato, le prestazioni potrebbe risultare inferiori.Too many users may be accessing the server simultaneously causing performance degradation.
Blocchi di bloccoBlocking locks L'utilizzo di applicazioni progettate in modo non corretto può causare blocchi e ostacolare la concorrenza, con un conseguente rallentamento dei tempi di risposta e una diminuzione della velocità effettiva.Incorrectly designed applications can cause locks and hamper concurrency, thus causing longer response times and lower transaction throughput rates.

Vedere ancheSee Also

Monitorare l'utilizzo della CPU Monitor CPU Usage
Monitoraggio dell'utilizzo del disco Monitor Disk Usage
Monitoraggio dell'utilizzo della memoria Monitor Memory Usage
Oggetto Statistiche generali di SQL Server SQL Server, General Statistics Object
Oggetto Locks di SQL Server SQL Server, Locks Object