Informazioni sui carichi di lavoro

Per creare le indicazioni relative al set di indici, alle viste indicizzate o alle partizioni ottimali da implementare nei database, Ottimizzazione guidata motore di database richiede un carico di lavoro. Un carico di lavoro è costituito da uno script Transact-SQL o da una traccia di SQL Server Profiler salvata in un file o in una tabella. Se si utilizza un file o una tabella di traccia di SQL Server Profiler, la traccia deve contenere classi di evento di chiamate di procedura remota (RPC) o batch Transact-SQL e le colonne di dati Event Class e Text. Per ulteriori informazioni, vedere Categoria di eventi TSQL.

Ottimizzazione guidata motore di database consente di gestire i seguenti tipi di carico di lavoro:

  • Solo query di elaborazione delle transazioni in linea (OLTP)

  • Solo query di elaborazione analitica in linea (OLAP)

  • Query miste OLTP e OLAP

  • Carichi di lavoro elevati in termini di query (più query che aggiornamenti)

  • Carichi di lavoro elevati in termini di aggiornamenti (più aggiornamenti che query)

I carichi di lavoro devono contenere molti eventi ottimizzabili che rappresentino i carichi di lavoro tipici dei database in uso.

Se non è disponibile un carico di lavoro esistente da analizzare con Ottimizzazione guidata motore di database, è possibile crearlo utilizzando il modello di ottimizzazione di SQL Server Profiler. Il modello è configurato per l'acquisizione degli eventi e delle colonne necessarie per l'utilizzo da parte di Ottimizzazione guidata motore di database. Per ulteriori informazioni, vedere Modelli di SQL Server Profiler.

Dopo che nella traccia è stato acquisito un campione rappresentativo della normale attività del database, Ottimizzazione guidata motore di database analizza il carico di lavoro e consiglia una configurazione ottimale di indici, viste indicizzate e partizioni che possa migliorare le prestazioni.

Come carico di lavoro è inoltre possibile utilizzare:

  • Benchmark specifici della propria organizzazione o del proprio settore.

  • Query problematiche che richiedono una notevole quantità di tempo per essere eseguite.

Utilizzo dei carichi di lavoro

Quando si utilizzano i carichi di lavoro con Ottimizzazione guidata motore di database, considerare quanto segue:

  • Quando come carico di lavoro si utilizza una tabella di traccia, è necessario che la tabella sia inclusa nel server in cui viene eseguito Ottimizzazione guidata motore di database. Se la tabella di traccia viene creata in un altro server, è necessario spostarla nel server in cui viene eseguita Ottimizzazione guidata motore di database.

  • Prima di utilizzare una tabella di traccia come carico di lavoro per Ottimizzazione guidata motore di database, verificare che la traccia non sia più in esecuzione. Ottimizzazione guidata motore di database non supporta l'utilizzo di una tabella di traccia nella quale vengono ancora scritti eventi di traccia come carico di lavoro.

  • Quando si utilizza un file di traccia come carico di lavoro, Ottimizzazione guidata motore di database presuppone che si tratti di un file di rollover. Per ulteriori informazioni sui file di rollover, vedere Limitazione delle dimensioni di file di traccia e tabelle.

  • Se il carico di lavoro contiene query in cui si utilizza l'hint per la query USE PLAN, che impone l'utilizzo di un piano di query specifico in SQL Server, Ottimizzazione guidata Motore di database mantiene tutti gli indici contenuti nel piano forzato e nessuno di essi verrà eliminato nell'ambito delle indicazioni di ottimizzazione.

  • Ottimizzazione guidata motore di database inoltra le richieste Showplan come parte del processo di ottimizzazione. Quando una tabella o file di traccia che include la colonna di dati LoginName viene utilizzato come carico di lavoro, Ottimizzazione guidata motore di database rappresenta l'utente specificato in LoginName. Se tale utente non dispone di autorizzazioni sufficienti per eseguire e generare Showplan per le istruzioni incluse nella traccia, Ottimizzazione guidata motore di database non eseguirà l'ottimizzazione di queste istruzioni. Per risolvere il problema, rimuovere la colonna LoginName da questi eventi non ottimizzati. Per ulteriori informazioni, vedere l'argomento relativi ai carichi di lavoro di file di traccia o tabella di traccia che includono la colonna di dati LoginName in Procedura: Creazione di carichi di lavoro.