Cómo crear cargas de trabajo

Una carga de trabajo es un conjunto de instrucciones Transact-SQL que se ejecutan en una o varias bases de datos que desea optimizar. La interfaz gráfica de usuario (GUI) del Asistente para la optimización de motor de base de datos y la utilidad de línea de comandos dta utilizan archivos de traza, tablas de traza o scripts Transact-SQL como entradas de la carga de trabajo al optimizar las bases de datos. Las cargas de trabajo también pueden incrustarse en un archivo de entrada XML, en el que también se puede especificar un peso para cada evento. Para obtener más información acerca de cómo especificar cargas de trabajo insertadas, vea Usar un archivo de entrada XML para la optimización.

Puede utilizar el editor de consultas en MicrosoftSQL Server Management Studio o su editor de texto preferido para crear cargas de trabajo de scripts Transact-SQL. Para crear cargas de trabajo de tablas de traza o archivos de traza, use SQL Server Profiler. El Asistente para la optimización de motor de base de datos analiza estas cargas de trabajo y recomienda estrategias de partición o indización que mejorarán el rendimiento de las consultas del servidor.

[!NOTA]

Cuando utilice una tabla de traza como una carga de trabajo, esa tabla debe existir en el mismo servidor en el que el Asistente para la optimización de motor de base de datos está realizando la optimización. Si crea la tabla de traza en otro servidor, muévala después al servidor en el que el Asistente para la optimización de motor de base de datos está realizando la optimización.

Para crear cargas de trabajo de scripts Transact-SQL mediante el editor de consultas de SQL Server Management Studio

  1. Inicie el Editor de consultas en SQL Server Management Studio. Para obtener información acerca de cómo ejecutar este paso, vea Modificar scripts y archivos en SQL Server Management Studio.

  2. Escriba el script Transact-SQL en el Editor de consultas. Este script debe contener un conjunto de instrucciones Transact-SQL que se ejecutan en una o varias bases de datos que desea optimizar. Guarde el archivo con la extensión .sql. La utilidad de línea de comandos y la GUI del Asistente para la optimización de motor de base de datos pueden utilizar este script Transact-SQL como una carga de trabajo.

Para crear cargas de trabajo de tablas de traza y archivos de traza mediante el Analizador de SQL Server

  1. Inicie el SQL Server Profiler mediante uno de los métodos siguientes:

    • En el menú Inicio, elija Todos los programas, Microsoft SQL Server, Herramientas de rendimiento y, a continuación, haga clic en Analizador de SQL Server.

    • En SQL Server Management Studio, haga clic en el menú Herramientas y, a continuación, haga clic en Analizador de SQL Server.

  2. Cree un archivo o tabla de traza, tal y como se describe en los procedimientos siguientes, que utilice la plantilla Tuning del SQL Server Profiler:

Es recomendable usar la plantilla Tuning del Analizador de SQL Server para capturar cargas de trabajo para el Asistente para la optimización de motor de base de datos.

Si desea utilizar su propia plantilla, asegúrese de que los siguientes eventos de traza se capturan para la versión de SQL Server que está utilizando.

SQL Server 2005 y versiones posteriores:

  • RPC:Completed

  • SQL:BatchCompleted

  • SP:StmtCompleted

SQL Server 2000:

  • RPC:Completed

  • SQL:BatchCompleted

También puede utilizar las versiones Starting (inicio) de estos eventos de traza. Por ejemplo, SQL:BatchStarting. Sin embargo, las versiones Completed (completado) de estos eventos de traza incluyen la columna Duration, que permite al Asistente para la optimización de motor de base de datos optimizar de forma más eficaz la carga de trabajo. El Asistente para la optimización de motor de base de datos no optimiza otros tipos de eventos de traza. Para obtener más información acerca de estos eventos de traza, vea Procedimientos almacenados (categoría de eventos) y TSQL (categoría de eventos). Para obtener más información acerca del uso de procedimientos almacenados de Traza de SQL para crear una carga de trabajo de archivo de traza, vea Cómo crear una traza (Transact-SQL).

Cargas de trabajo de archivos o tablas de traza que contienen la columna LoginName

El Asistente para la optimización de motor de base de datos envía solicitudes de plan de presentación como parte del proceso de optimización. Cuando una tabla o un archivo de traza que contiene la columna de datos LoginName se consume como una carga de trabajo, el Asistente para la optimización de motor de base de datos suplanta al usuario especificado en LoginName. Si este usuario no dispone del permiso SHOWPLAN, que le permite ejecutar y generar planes de presentación para las instrucciones incluidas en la traza, el Asistente para la optimización de motor de base de datos no optimizará esas instrucciones. Para obtener más información acerca de la columna de datos LoginName, vea Describir eventos mediante columnas de datos. Para obtener más información acerca del permiso SHOWPLAN, vea Seguridad del plan de presentación.

Para evitar conceder el permiso SHOWPLAN a cada usuario especificado en la columna LoginName de la traza

  1. Optimice la carga de trabajo del archivo o carga de traza. Para obtener más información, vea Cómo optimizar una base de datos.

  2. Utilice el registro de optimización para buscar instrucciones que no se hayan optimizado por causa de permisos inadecuados. Para obtener más información, vea Acerca del registro de optimización y Cómo ver la salida de optimización.

  3. Cree una nueva carga de trabajo al eliminar la columna LoginName de los eventos que no se hayan optimizado y, a continuación, guarde únicamente los eventos no optimizados en un nuevo archivo o tabla de traza. Para obtener más información acerca de la eliminación de columnas de datos de una traza, vea Cómo especificar columnas de datos y eventos para un archivo de seguimiento (SQL Server Profiler) o Cómo modificar un seguimiento existente (Transact-SQL).

  4. Vuelva a enviar la nueva carga de trabajo sin la columna LoginName al Asistente para la optimización de motor de base de datos.

El Asistente para la optimización de motor de base de datos optimizará la nueva carga de trabajo debido a que no hay información de inicio de sesión especificada en la traza. Si LoginName no existe para una instrucción, el Asistente para la optimización de motor de base de datos optimiza esa instrucción al suplantar al usuario que inició la sesión de optimización (un miembro de la función fija de servidor sysadmin o de la función fija de base de datos db_owner).