Procedura: Creazione di carichi di lavoro

Un carico di lavoro è un set di istruzioni Transact-SQL eseguite sui database che si desidera ottimizzare. Quando si utilizza l'interfaccia utente grafica (GUI) o l'utilità da riga di comando dta di Ottimizzazione guidata motore di database, per l'ottimizzazione dei database vengono utilizzati file di traccia, tabelle di traccia o script Transact-SQL come input del carico di lavoro. I carichi di lavoro inoltre possono essere incorporati in un file di input XML, in cui è possibile specificare anche la ponderazione per ogni evento. Per ulteriori informazioni sull'impostazione di carichi di lavoro inline, vedere Utilizzo di un file di input XML per l'ottimizzazione.

Tramite l'editor di query di Microsoft SQL Server Management Studio o l'editor di testo desiderato è possibile creare carichi di lavoro di script Transact-SQL. Per creare carichi di lavoro di file di traccia o di tabelle di traccia, utilizzare SQL Server Profiler. In Ottimizzazione guidata motore di database questi carichi di lavoro vengono analizzati allo scopo di fornire indicazioni sugli indici o sulle strategie di partizionamento che consentono di migliorare le prestazioni di esecuzione delle query nel server.

Nota

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 l'ottimizzazione guidata.

Per creare carichi di lavoro in formato script Transact-SQL tramite l'editor di query di SQL Server Management Studio

  1. Avviare l'editor di query in SQL Server Management Studio. Per informazioni sull'esecuzione di questa operazione, vedere Modifica di script e file in SQL Server Management Studio.

  2. Digitare lo script Transact-SQL nell'editor di query. Lo script deve includere un set di istruzioni Transact-SQL eseguite sui database che si desidera ottimizzare. Salvare il file con l'estensione sql. Lo script Transact-SQL può essere utilizzato come carico di lavoro nella GUI e nell'utilità da riga di comando di Ottimizzazione guidata motore di database.

Per creare carichi di lavoro di file di traccia e di tabelle di traccia tramite SQL Server Profiler

  1. Avviare SQL Server Profiler in uno dei modi seguenti:

    • Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server , Strumenti per le prestazioni e quindi SQL Server Profiler.

    • In SQL Server Management Studio scegliere SQL Server Profiler dal menu Strumenti.

  2. Creare un file o una tabella di traccia come descritto nelle procedure seguenti in cui viene utilizzato il modello di ottimizzazione Tuning di SQL Server Profiler:

Per l'acquisizione di carichi di lavoro per Ottimizzazione guidata motore di database è consigliabile utilizzare il modello Tuning di SQL Server Profiler.

Se si desidera utilizzare un modello personalizzato, verificare che siano acquisiti i seguenti eventi di traccia per la versione di SQL Server in uso:

SQL Server 2005 e versioni successive:

  • RPC:Completed

  • SQL:BatchCompleted

  • SP:StmtCompleted

SQL Server 2000:

  • RPC:Completed

  • SQL:BatchCompleted

È inoltre possibile utilizzare la versione Starting degli eventi di traccia, ad esempio, SQL:BatchStarting. La versione Completed tuttavia include la colonna Duration che consente un'ottimizzazione più efficiente del carico di lavoro. Ottimizzazione guidata motore di database non supporta l'ottimizzazione di altri tipi di eventi di traccia. Per ulteriori informazioni su questi eventi di traccia, vedere Categoria di eventi Stored procedure e Categoria di eventi TSQL. Per informazioni sull'utilizzo di stored procedure di Traccia SQL per la creazione di un carico di lavoro di file di traccia, vedere Procedura: Creazione di una traccia (Transact-SQL).

Carichi di lavoro di file o tabella di traccia che includono la colonna di dati LoginName

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 utilizzata come carico di lavoro, Ottimizzazione guidata motore di database rappresenta l'utente specificato in LoginName. Se tale utente non dispone dell'autorizzazione SHOWPLAN, che consente di eseguire e generare Showplan per le istruzioni incluse nella traccia, Ottimizzazione guidata motore di database non eseguirà l'ottimizzazione di queste istruzioni. Per ulteriori informazioni sulla colonna di dati LoginName, vedere Descrizione degli eventi mediante le colonne di dati. Per ulteriori informazioni sull'autorizzazione SHOWPLAN, vedere Aspetti di sicurezza relativi a Showplan.

Per evitare di concedere l'autorizzazione SHOWPLAN a ogni utente specificato nella colonna LoginName della traccia

  1. Ottimizzare il carico di lavoro del file o della tabella di traccia. Per ulteriori informazioni, vedere Procedura: Ottimizzazione di un database.

  2. Verificare nel log di ottimizzazione eventuali istruzioni non ottimizzate a causa di autorizzazioni non adeguate. Per ulteriori informazioni, vedere Informazioni sul log di ottimizzazione e Procedura: Visualizzazione dell'output dell'ottimizzazione.

  3. Creare un nuovo carico di lavoro eliminando la colonna LoginName dagli eventi non ottimizzati e quindi salvando solo gli eventi non ottimizzati in un nuovo file o tabella di traccia. Per ulteriori informazioni sull'eliminazione di colonne di dati da una traccia, vedere Procedura: Specifica di eventi per un file di traccia (SQL Server Profiler) o Procedura: Modifica di una traccia esistente (Transact-SQL).

  4. Ripetere l'inoltro del nuovo carico di lavoro senza la colonna LoginName a Ottimizzazione guidata motore di database.

Ottimizzazione guidata motore di database eseguirà l'ottimizzazione del nuovo carico di lavoro dato che le informazioni di accesso non sono specificate nella traccia. Se LoginName non esiste per un'istruzione, Ottimizzazione guidata motore di database ottimizza l'istruzione rappresentando l'utente che ha avviato la sessione di ottimizzazione (un membro del ruolo predefinito del server sysadmin o del ruolo predefinito del server db_owner).