Funzionalità dell'Ottimizzazione guidata motore di database

L'Ottimizzazione guidata Motore di database include nuove funzionalità che consentono agli amministratori di database esperti e inesperti di migliorare le prestazioni di esecuzione delle query mediante l'ottimizzazione dei database. Nelle sezioni seguenti vengono elencate e descritte le nuove funzionalità dell'Ottimizzazione guidata Motore di database:

Miglioramento dell'analisi del carico di lavoro

  • Gestisce i batch che fanno riferimento a tabelle temporanee.

  • Non termina l'ottimizzazione quando non è in grado di analizzare un evento, ma registra l'evento nel log di ottimizzazione e quindi procede all'ottimizzazione di altri eventi.

  • Analizza e ottimizza le query che fanno riferimento a funzioni definite dall'utente.

  • Gestisce tutte le istruzioni USE in una traccia, un aspetto essenziale quando si ottimizzano più database.

  • Utilizza la colonna LoginName nel carico di lavoro, quando è disponibile nei carichi di lavoro della traccia, per ottimizzare correttamente l'evento nel contesto dell'utente che lo esegue.

  • Ottimizza le istruzioni nei trigger.

Miglioramento della scalabilità

  • Utilizza la compressione del carico di lavoro per consentire all'Ottimizzazione guidata Motore di database di ridurre il tempo dedicato all'ottimizzazione continuando a produrre risultati di alta qualità relativamente alle indicazioni di ottimizzazione.

  • Utilizza un algoritmo per evitare la creazione di statistiche ridondanti, in modo da ridurre il numero di operazioni di I/O richieste durante l'ottimizzazione.

Ottimizzazione integrata

L'Ottimizzazione guidata Motore di database è in grado di valutare i livelli delle prestazioni offerti dai diversi tipi di strutture di progettazione fisica, ad esempio indici, viste indicizzate e partizionamento, inclusi gli indici filtrati. È possibile che diverse strutture siano sovrapponibili per quanto riguarda la capacità di riduzione del costo di esecuzione di una determinata query, pertanto la valutazione di una configurazione integrata di più strutture di progettazione consente all'Ottimizzazione guidata Motore di database di generare indicazioni di qualità più elevata. Ad esempio, se vengono considerati solo indici cluster su un set di tabelle e quindi viene considerato il partizionamento per intervalli orizzontale sullo stesso set di tabelle, non sarà possibile stabilire la capacità di interagire di queste due strutture di progettazione fisica. Per comprenderne l'interazione, è necessario che lo strumento esegua un'ottimizzazione integrata.

Ottimizzazione di più database

Per completare un'attività, le applicazioni accedono spesso a più database, quindi i carichi di lavoro fanno riferimento a oggetti di più database. L'Ottimizzazione guidata Motore di database è in grado di eseguire l'ottimizzazione simultanea di più database, a differenza dell'Ottimizzazione guidata inclusa in Microsoft SQL Server 2000. L'utente dovrà specificare un set di database da ottimizzare e l'Ottimizzazione guidata Motore di database fornirà indicazioni per tutti i database selezionati. Per ulteriori informazioni su questa funzionalità, vedere Ottimizzazione di più database.

Ripartizione dell'overhead di ottimizzazione sul server di prova

L'ottimizzazione di un carico di lavoro esteso può creare un overhead significativo sul server in fase di ottimizzazione, poiché spesso l'Ottimizzazione guidata Motore di database deve effettuare diverse chiamate a Query Optimizer durante il processo di ottimizzazione. L'utilizzo di un server di prova oltre al server di produzione consente di eliminare questo problema.

In questo scenario viene ottimizzato un server di prova che duplica l'ambiente del server di produzione. Dopo avere ottenuto l'indicazione per la configurazione di una struttura di database a seguito dell'ottimizzazione del server di prova, sarà possibile implementare tale indicazione sul server di produzione durante una sessione di manutenzione.

L'utilizzo tradizionale di un server di prova consiste nel copiare tutti i dati dal server di produzione al server di prova, ottimizzare il server di prova e quindi modificare l'indicazione risultante in base alle differenze hardware dei due computer. L'Ottimizzazione guidata Motore di database consente di risparmiare tempo e risorse, in quanto è in grado di utilizzare un server di prova senza richiedere la copia dei dati nel computer di prova o senza richiedere che i set di componenti hardware dei due computer siano identici. L'Ottimizzazione guidata Motore di database importa invece i metadati, le statistiche e i parametri hardware dal server di produzione al server di prova, dopodiché esegue la maggior parte delle operazioni di ottimizzazione sul server di prova, consentendo l'implementazione dei risultati sul server di produzione durante una normale sessione di manutenzione. Per ulteriori informazioni su questa funzionalità, vedere Riduzione del carico di ottimizzazione del server di produzione.

Utilità della riga di comando e strumento dell'interfaccia utente grafica

Nell'Ottimizzazione guidata Motore di database sono incluse le due interfacce utente seguenti:

  • L'utilità della riga di comando dta, che consente di incorporare più facilmente la funzionalità dell'Ottimizzazione guidata Motore di database con il sistema di scripting.

  • Lo strumento dell'interfaccia utente grafica (GUI) dell'Ottimizzazione guidata Motore di database, che consente di visualizzare più facilmente le sessioni e i risultati dell'ottimizzazione.

Ottimizzazione di sola eliminazione

Le strutture di progettazione fisica in un database possono accumularsi nel corso del tempo e quindi gli amministratori di database hanno la necessità di utilizzare uno strumento che elimini le strutture non più necessarie. L'opzione per l'ottimizzazione di sola eliminazione è utile per identificare le strutture di progettazione fisica esistenti che non vengono più utilizzate e che rappresentano un vantaggio molto limitato per un determinato carico di lavoro. È possibile specificare questa opzione di ottimizzazione con l'argomento –fx nell'utilità della riga di comando dta. Se si utilizza lo strumento della GUI, nella scheda Opzioni di ottimizzazione specificare questa opzione selezionando Valuta l'utilizzo delle sole strutture di progettazione fisica esistenti.

Se questa opzione è attivata, l'Ottimizzazione guidata Motore di database non proporrà mai nuove strutture, quindi non è possibile utilizzare questa opzione con altre che aggiungono indici, viste indicizzate o partizioni. Non è inoltre possibile utilizzare l'opzione di ottimizzazione di sola eliminazione insieme all'opzione per mantenere tutte le strutture esistenti. Per ulteriori informazioni sulle opzioni di ottimizzazione disponibili con l'Ottimizzazione guidata Motore di database, vedere Opzioni di ottimizzazione disponibili.

Supporto XML

Tutte le operazioni di ottimizzazione che è possibile eseguire tramite l'interfaccia utente grafica (GUI) dell'Ottimizzazione guidata Motore di database e l'utilità della riga di comando dta possono essere definite in un file di input XML dell'Ottimizzazione guidata Motore di database. Il file di input XML utilizza lo schema XML di Ottimizzazione guidata Motore di database, disponibile nel percorso seguente della directory di installazione di Microsoft SQL Server:

C:\Programmi\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd

È inoltre possibile scaricare lo schema dalla pagina Schema di Ottimizzazione guidata motore di database presso il sito Web Microsoft.

Il file di input XML consente di utilizzare gli strumenti XML preferiti per l'ottimizzazione dei database e offre maggiore flessibilità agli amministratori di database esperti. Con un file di input XML è ad esempio possibile specificare una configurazione di strutture di progettazione fisica esistenti e ipotetiche (indici, viste indicizzate, partizioni) e quindi utilizzare l'utilità della riga di comando dta per ottimizzare un database come se questa configurazione fosse già implementata. In questo modo sarà possibile eseguire analisi di simulazione evitando l'overhead che sarebbe necessario per implementare la nuova configurazione prima dell'ottimizzazione. Per ulteriori informazioni sul supporto XML dell'Ottimizzazione guidata Motore di database, vedere Guida di riferimento ai file di input XML (Ottimizzazione guidata motore di database), Utilizzo di un file di input XML per l'ottimizzazione e Utilizzo di Ottimizzazione guidata motore di database per l'analisi esplorativa.

Configurazione specificata dall'utente e supporto per analisi di simulazione

L'Ottimizzazione guidata Motore di database consente di creare una configurazione ipotetica di strutture di progettazione fisica (indici, viste indicizzate e strategie di partizionamento) come input per l'ottimizzazione. Dopo questa operazione sarà possibile ottimizzare uno o più database come se la configurazione fosse già implementata. Questa configurazione consente di eseguire un'analisi di simulazione su un particolare set di strutture di progettazione fisica evitando l'overhead necessario per l'implementazione. Questa funzionalità è completamente supportata dallo schema XML dell'Ottimizzazione guidata Motore di database. È possibile specificare la configurazione che si desidera valutare nel file di input XML e quindi utilizzare l'utilità della riga di comando dta per avviare la sessione di ottimizzazione. Per ulteriori informazioni su questa funzionalità, vedere Utilizzo di Ottimizzazione guidata motore di database per l'analisi esplorativa.

Report di analisi

Al termine di una sessione di ottimizzazione, l'Ottimizzazione guidata Motore di database genera una serie di report di analisi in formato testo o XML che contengono informazioni quali il costo delle query eseguite nel carico di lavoro, la frequenza degli eventi che si verificano nel carico di lavoro oppure le relazioni tra le query e gli indici ai quali fanno riferimento. Per visualizzare i report è possibile utilizzare la GUI dell'Ottimizzazione guidata Motore di database oppure un editor XML a scelta che consenta di aprire i report generati in formato XML. Per ulteriori informazioni sui report di analisi generati dall'Ottimizzazione guidata Motore di database, vedere Scelta di un report di Ottimizzazione guidata motore di database.

Sessioni di ottimizzazione

Prima dell'inizio dell'analisi, l'Ottimizzazione guidata Motore di database richiede la creazione di un nome o un numero univoco per identificare la sessione di ottimizzazione. Al termine dell'analisi di un carico di lavoro o quando l'analisi viene interrotta, l'Ottimizzazione guidata Motore di database salva le informazioni relative alla sessione di ottimizzazione associandole all'identificatore specificato prima dell'inizio dell'operazione. È possibile utilizzare l'identificatore di sessione per ricaricare una sessione esistente nella GUI dell'Ottimizzazione guidata Motore di database e qui esaminare i risultati dell'ottimizzazione e i report. Le sessioni di ottimizzazione facilitano il confronto tra risultati dell'ottimizzazione in un intervallo di tempo. Per ulteriori informazioni sull'utilizzo delle sessioni di ottimizzazione, vedere Utilizzo del monitor di sessione per valutare le indicazioni relative all'ottimizzazione.

Funzionalità disponibili solo con l'utilità dta

Le opzioni di ottimizzazione elencate nelle sezioni seguenti non sono attualmente disponibili quando si utilizza l'Ottimizzazione guidata Motore di database.

Al prompt dei comandi o se si utilizza un file di input XML

Quando l'utilità dta viene eseguita al prompt dei comandi oppure viene utilizzato un file di input XML tramite l'argomento del prompt dei comandi -ix, è possibile specificare:

  • Un log di ottimizzazione in base al nome (argomento del prompt dei comandi (-e o elemento TableName).

  • Il numero di eventi da ottimizzare (argomento del prompt dei comandi -n o elemento NumberOfEvents).

  • Il numero massimo di colonne chiave negli indici che verrà proposto dall'Ottimizzazione guidata Motore di database (argomento del prompt dei comandi -c o elemento MaxKeyColumnsInIndex).

  • Il miglioramento minimo in base al quale l'Ottimizzazione guidata Motore di database deve proporre la configurazione consigliata (argomento del prompt dei comandi -m o elemento MinPercentageImprovement).

Se si utilizza un file di input XML

Oltre alle funzionalità descritte, quando si utilizza un file di input XML con l'utilità dta è possibile anche:

  • Utilizzare lo scenario server di prova/server di produzione, che prevede la creazione di uno scheletro di database su un server di prova (elemento TestServer).

  • Specificare un carico di lavoro inline nel file di input XML (elemento EventString).

  • Ignorare le costanti in un carico di lavoro (elemento IgnoreConstantsInWorkload).

Al prompt dei comandi

Oltre alle funzionalità descritte, quando l'utilità dta viene eseguita al prompt dei comandi è possibile anche:

  • Specificare la modalità non interattiva, che prevede l'esecuzione dell'utilità senza la visualizzazione dei messaggi di dettagli (argomento del prompt dei comandi -q).

  • Ottimizzare e applicare automaticamente le indicazioni di ottimizzazione (argomento del prompt dei comandi -a).