Share via


Elenco di controllo per l'analisi delle query con esecuzione rallentata

Una durata più lunga del previsto per l'esecuzione di query o aggiornamenti può avere diverse cause. È possibile che le query con esecuzione rallentata dipendano da problemi di prestazioni correlati alla rete o al computer in cui è in esecuzione SQL Server oppure da problemi relativi alla struttura fisica del database.

Di seguito sono elencate alcune delle cause più comuni delle query con esecuzione lenta.

  • Comunicazioni di rete lente.
  • Memoria insufficiente nel computer server o memoria insufficiente per l'esecuzione di SQL Server.
  • Mancanza di statistiche utili nelle colonne indicizzate.
  • Statistiche non aggiornate nelle colonne indicizzate.
  • Mancanza di indici utili.
  • Mancanza di viste indicizzate utili.
  • Striping dei dati inefficace.
  • Mancanza di partizionamento utile.

Elenco di controllo per la risoluzione dei problemi relativi alle query con esecuzione rallentata

In caso di durata superiore al previsto per l'esecuzione di una query o un aggiornamento, esaminare le domande seguenti, relative alle possibili cause delle query con esecuzione rallentata, illustrate nella sezione precedente:

ms177500.note(it-it,SQL.90).gifSuggerimento:
Per risparmiare tempo, esaminare questo elenco di controllo prima di rivolgersi al servizio di supporto tecnico.
  1. Verificare se il problema di prestazioni può essere legato a un componente diverso dalle query, ad esempio a prestazioni di rete insufficienti. Verificare se il calo delle prestazioni può essere dovuto totalmente o in parte ad altri componenti.
    È possibile utilizzare Monitor di sistema di Windows per monitorare le prestazioni di SQL Server e dei componenti non SQL Server correlati. Per ulteriori informazioni, vedere Monitoraggio dell'utilizzo delle risorse (Monitor di sistema).
  2. Se il problema di prestazioni è correlato alle query, individuare la query o il set di query interessate.
    Per individuare le query lente utilizzare innanzitutto SQL Server Profiler. Per ulteriori informazioni, vedere Utilizzo di SQL Server Profiler.
    Dopo aver identificato la query o le query lente, è possibile analizzare ulteriormente le prestazioni delle query generando un piano Showplan, il quale può essere una rappresentazione di testo, XML o grafica del piano di esecuzione delle query generato da Query Optimizer. È possibile generare un piano Showplan mediante opzioni Transact-SQL SET, SQL Server Management Studio o SQL Server Profiler.
    Per informazioni sull'utilizzo delle opzioni Transact-SQL SET per visualizzare piani di esecuzione di testo e XML, vedere Visualizzazione di piani di esecuzione tramite le opzioni SET SHOWPLAN (Transact-SQL).
    Per informazioni sull'utilizzo di SQL Server Management Studio per visualizzare piani di esecuzione grafici, vedere Visualizzazione dei piani di esecuzione grafici (SQL Server Management Studio).
    Per informazioni sull'utilizzo di SQL Server Profiler per visualizzare piani di esecuzione di testo e XML, vedere Visualizzazione dei piani di esecuzione utilizzando le classi di eventi di SQL Server Profiler.
    Le informazioni raccolte da questi strumenti consentono di determinare la modalità di esecuzione di una query tramite Query Optimizer di SQL Server e indicano gli indici utilizzati. Queste informazioni consentono di determinare se per migliorare le prestazioni è necessario riscrivere la query, modificare gli indici nelle tabelle o, talvolta, modificare la struttura del database. Per ulteriori informazioni, vedere Analisi di una query.
  3. Verificare se la query è stata ottimizzata con statistiche utili.
    Le statistiche relative alla distribuzione dei valori in una colonna vengono create automaticamente da SQL Server sulle colonne indicizzate. È inoltre possibile creare statistiche sulle colonne non indicizzate, sia manualmente tramite SQL Server Management Studio o l'istruzione CREATE STATISTICS, sia automaticamente se l'opzione di database AUTO_CREATE_STATISTICS è impostata su TRUE. Le statistiche possono essere utilizzate in Query Processor per determinare la strategia ottimale di valutazione di una query. La gestione di statistiche aggiuntive su colonne non indicizzate che partecipano a operazioni di join può determinare un miglioramento delle prestazioni delle query. Per ulteriori informazioni, vedere Statistiche dell'indice.
    Monitorare la query tramite SQL Server Profiler o il piano di esecuzione grafico di SQL Server Management Studio per determinare se la query dispone di statistiche sufficienti. Per ulteriori informazioni, vedere Categoria di eventi Errori e avvisi (Motore di database).
  4. Verificare se le statistiche delle query sono aggiornate. Verificare inoltre se le statistiche vengono aggiornate automaticamente.
    In SQL Server le statistiche delle query su colonne indicizzate vengono create e aggiornate automaticamente, a condizione che l'aggiornamento automatico delle statistiche relative alle query non sia disattivato. È inoltre possibile aggiornare statistiche sulle colonne non indicizzate, sia manualmente tramite SQL Server Management Studio o l'istruzione UPDATE STATISTICS, sia automaticamente se l'opzione di database AUTO_UPDATE_STATISTICS è impostata su TRUE. Il fatto che le statistiche siano aggiornate non dipende da informazioni di data o ora. Se non sono state eseguite operazioni UPDATE, le statistiche delle query risultano aggiornate.
    Se l'aggiornamento automatico delle statistiche è disattivato, è consigliabile attivarlo. Per ulteriori informazioni, vedere Statistiche dell'indice.
  5. Verificare se sono disponibili indici adeguati. Verificare se l'aggiunta di uno o più indici può determinare un miglioramento delle prestazioni della query. Per ulteriori informazioni, vedere Linee guida generali per la progettazione di indici, Individuazione degli indici mancanti e Guida di riferimento a Ottimizzazione guidata motore di database. La creazione delle statistiche necessarie può essere inoltre suggerita da Ottimizzazione guidata motore di database.
  6. Verificare la presenza di aree critiche per i dati o gli indici. Considerare la possibilità di utilizzare lo striping del disco. È possibile implementare lo striping del disco utilizzando una periferica RAID (Redundant Array of Independent Disks) di livello 0, dove i dati vengono distribuiti in più unità disco. Per ulteriori informazioni, vedere Utilizzo di file e filegroup e RAID.
  7. Verificare se Query Optimizer dispone di informazioni appropriate e sufficienti per l'ottimizzazione di una query complessa. Per ulteriori informazioni, vedere Consigli per l'ottimizzazione delle query.
  8. In caso di un volume elevato di dati, verificare se è necessario il partizionamento. Una migliore gestibilità dei dati rappresenta il vantaggio principale del partizionamento, ma se le tabelle e gli indici relativi ai dati sono partizionati in modo analogo, il partizionamento può contribuire anche all'ottimizzazione delle prestazioni. Per ulteriori informazioni, vedere Informazioni sul partizionamento e Ottimizzazione della progettazione fisica di database.

Vedere anche

Concetti

Visualizzazione di piani di esecuzione tramite le opzioni SET SHOWPLAN (Transact-SQL)
Visualizzazione dei piani di esecuzione utilizzando le classi di eventi di SQL Server Profiler
Aspetti di protezione relativi a Showplan
Istruzioni Transact-SQL che generano Showplan

Guida in linea e informazioni

Assistenza su SQL Server 2005