Considerazioni sull'utilizzo di Ottimizzazione guidata motore di database

Prima di utilizzare Ottimizzazione guidata motore di database, è consigliabile acquisire un livello di conoscenza adeguato delle relative funzionalità e degli effetti sulle prestazioni. Le sezioni seguenti illustrano questi concetti, ma non forniscono informazioni complete sulle possibili problematiche. I tipi specifici di problematiche da tenere in considerazione per l'utilizzo di Ottimizzazione guidata motore di database sono determinati dall'ambiente e dal tipo di implementazione di SQL Server specifici.

Funzionalità di Ottimizzazione guidata motore di database

Ottimizzazione guidata motore di database non offre le funzionalità seguenti:

  • Indicazioni relative agli indici nelle tabelle di sistema.

  • Aggiunta o eliminazione di indici univoci o di indici che impongono vincoli PRIMARY KEY o UNIQUE.

  • Ottimizzazione di database in modalità utente singolo.

Nota

Ottimizzazione guidata motore di database fornisce indicazioni relative agli indici cluster univoci nelle viste se le viste indicizzate rientrano nelle relative indicazioni.

Ottimizzazione guidata motore di database ha inoltre le seguenti limitazioni:

  • Raccoglie le statistiche tramite il campionamento dei dati e pertanto l'esecuzione ripetuta di questa procedura guidata sullo stesso carico di lavoro può produrre risultati diversi.

  • Non può essere utilizzata per ottimizzare gli indici di database creati con Microsoft SQL Server 7.0 o versioni precedenti.

  • Se si specifica uno spazio massimo su disco per le indicazioni per l'ottimizzazione e tale spazio supera lo spazio disponibile, verrà comunque utilizzato il valore specificato. Quando si esegue lo script delle indicazioni, è tuttavia possibile che non venga eseguito se prima non è stato aumentato lo spazio su disco. Per specificare lo spazio massimo su disco è possibile utilizzare l'opzione -B dell'utilità dta oppure specificare un valore nella finestra di dialogo Opzioni di ottimizzazione avanzate.

  • Per motivi di protezione, Ottimizzazione guidata motore di database non è in grado di ottimizzare un carico di lavoro in una tabella di traccia che si trova su un server remoto. Per ovviare a questa limitazione, è possibile eseguire una delle operazioni seguenti:

    • Utilizzare un file di traccia anziché una tabella di traccia.

    • Copiare la tabella di traccia sul server remoto.

  • Se si impongono vincoli, ad esempio si specifica uno spazio massimo su disco per le indicazioni per l'ottimizzazione (tramite l'opzione -B o la finestra di dialogo Opzioni di ottimizzazione avanzate), Ottimizzazione guidata motore di database potrebbe essere obbligata a eliminare indici esistenti specifici. In questo caso, è possibile che l'indicazione risultante generi un miglioramento previsto negativo.

  • Se si specifica un vincolo per limitare il tempo di ottimizzazione tramite l'opzione -A dell'utilità dta o selezionando l'opzione Limita tempo di ottimizzazione della scheda Opzioni di ottimizzazione, è possibile che Ottimizzazione guidata motore di database superi tale limite di tempo per creare un miglioramento previsto accurato e che i report di analisi relativi a una parte del carico di lavoro vengano esauriti.

È possibile che Ottimizzazione guidata motore di database non crei indicazioni nei seguenti casi:

  • La tabella da ottimizzare contiene meno di 10 pagine di dati.

  • Gli indici inseriti nelle indicazioni non offrono un miglioramento delle prestazioni delle query adeguato per la progettazione fisica del database corrente.

  • L'utente che esegue Ottimizzazione guidata motore di database non è un membro del ruolo del database db_owner o del ruolo predefinito del server sysadmin. Le query nel carico di lavoro vengono analizzate nel contesto di protezione dell'utente che esegue Ottimizzazione guidata motore di database. L'utente deve essere un membro del ruolo del database db_owner.

È possibile che Ottimizzazione guidata motore di database non crei indicazioni per il partizionamento nei seguenti casi:

  • La stored procedure estesa xp_msver non è abilitata. Questa stored procedure estesa consente di recuperare il numero di processori e la memoria disponibile nel server in cui si trova il database da ottimizzare. Si osservi che questa stored procedure è abilitata per impostazione predefinita quando si installa SQL Server. Per ulteriori informazioni, vedere Informazioni su Configurazione superficie di attacco e xp_msver (Transact-SQL).

Nota

Quando Ottimizzazione guidata motore di database esegue l'ottimizzazione di un server di prova, è necessario che la stored procedure estesa xp_msver sia abilitata, in modo da consentire il recupero delle informazioni dal server di produzione durante l'ottimizzazione. Per ulteriori informazioni, vedere Considerazioni relative all'utilizzo di server di prova.

Considerazioni sulle prestazioni

Ottimizzazione guidata motore di database può impegnare una notevole quantità di risorse dei processori e di memoria durante l'analisi. Per evitare rallentamenti del server di produzione, è possibile applicare una delle strategie seguenti:

  • Ottimizzare i database quando il carico di lavoro del server è minimo. Ottimizzazione guidata motore di database può influire sulle prestazioni delle attività di manutenzione.

  • Utilizzare la strategia che prevede l'utilizzo combinato di un server di prova e un server di produzione. Per ulteriori informazioni, vedere Riduzione del carico di ottimizzazione del server di produzione.

  • Specificare unicamente le strutture di progettazione fisica del database che si desidera vengano analizzate da Ottimizzazione guidata motore di database. La procedura guidata offre numerose opzioni, ma specifica solo quelle necessarie.

Ottimizzazione guidata motore di database memorizza le informazioni sulla sessione nel database msdb

Ottimizzazione guidata motore di database memorizza i dati delle sessioni di ottimizzazione e le altre informazioni nel database msdb. Se vengono apportate modifiche al database msdb esiste il rischio di perdere dati delle sessioni di ottimizzazione. Per eliminare tale rischio, implementare una strategia di backup appropriata per il database msdb.