Individuare i 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 | Memoria insufficiente allocata o disponibile per Microsoft SQL Server degrada le prestazioni. 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. |
Uso della CPU | Una frequenza di utilizzo della CPU cronicamente elevata può indicare che le query Transact-SQL devono essere ottimizzate o che è necessario un aggiornamento della CPU. |
Input/output (I/O) del disco | Le query Transact-SQL possono essere ottimizzate per ridurre le operazioni di I/O non necessarie; ad esempio usando gli 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. |
Vedere anche
Monitorare l'uso della CPU
Monitorare l'uso del disco
Monitorare l'uso della memoria
Oggetto Statistiche generali di SQL Server
Oggetto Locks di SQL Server