Condividi tramite


Individuazione dei colli di bottiglia

In seguito all'accesso simultaneo alle risorse condivise si possono verificare colli di bottiglia. I colli di bottiglia in genere sono inevitabili e presenti in qualsiasi sistema software. È 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.

Le possibili cause dei colli di bottiglia sono:

  • Risorse insufficienti che rendono necessari l'aggiunta di componenti o l'aggiornamento dei componenti disponibili.

  • Carichi di lavoro non distribuiti equamente tra risorse dello stesso tipo, ad esempio monopolizzazione di un disco.

  • Funzionamento non corretto delle risorse.

  • Configurazione non corretta delle risorse.

Analisi dei colli di bottiglia

La durata eccessiva di alcuni eventi segnala la presenza di colli di bottiglia che è possibile ottimizzare.

Ad esempio:

  • È 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.

  • Le richieste client potrebbero richiedere tempi più lunghi a causa di traffico di rete intenso.

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.

Possibile area in cui è presente un collo di bottiglia

Effetti sul server

Utilizzo della memoria

Se la memoria allocata per Microsoft SQL Server o disponibile per il sistema non è sufficiente, le prestazioni risultano inferiori. I dati infatti devono essere letti nel disco anziché direttamente nella cache dei dati. Microsoft Windows NT esegue un paging eccessivo con uno swapping dei dati da e nel disco in base alle pagine richieste.

Utilizzo della CPU

Se la frequenza di utilizzo della CPU risulta costantemente elevata, potrebbe essere necessario ottimizzare le query Transact-SQL o aggiornare la CPU.

Input/output (I/O) del disco

Per ridurre le operazioni di I/O del disco non necessarie, è possibile ottimizzare le query Transact-SQL, ad esempio tramite l'utilizzo di indici.

Connessioni utente

Se il numero di utenti che accede al server simultaneamente è molto elevato, le prestazioni potrebbe risultare inferiori.

Blocchi di blocco

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.

Per ulteriori informazioni sull'ottimizzazione di query SQL, vedere Prestazioni delle query e Ottimizzazione della progettazione fisica di database.