Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
database SQL di Azure
Azure SQL Istanza gestita
Database SQL in Microsoft Fabric
L'accesso simultaneo alle risorse condivise causa 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 cause dei colli di bottiglia includono:
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.
Malfunzionamento delle risorse.
Configurazione non corretta delle risorse.
Analisi dei colli di bottiglia
Le durate eccessive di vari eventi sono indicatori di colli di bottiglia che possono essere ottimizzati.
Per 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. I sistemi operativi Microsoft Windows effettuano un paging eccessivo scambiando dati da e verso il disco man mano che le pagine sono necessarie. |
| 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 | Le query Transact-SQL possono essere ottimizzate per ridurre le operazioni di I/O non necessarie, ad esempio utilizzando gli indici. |
| Connessioni utente | Se il numero di utenti che accede al server simultaneamente è molto elevato, le prestazioni potrebbe risultare inferiori. |
| Blocchi di bloccaggio | 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. |