dta (utilidad)

La utilidad dta es la versión del símbolo del sistema del Asistente para la optimización de motor de base de datos. La utilidad dta está diseñada para permitir usar la funcionalidad del Asistente para la optimización de motor de base de datos en aplicaciones y secuencias de comandos.

Al igual que el Asistente para la optimización de motor de base de datos, la utilidad dta analiza una carga de trabajo y recomienda estructuras de diseño físico para mejorar el rendimiento del servidor para esa carga de trabajo. La carga de trabajo puede ser una tabla o un archivo de traza del Analizador de SQL Server o una secuencia de comandos de Transact-SQL. Las estructuras de diseño físico incluyen índices, vistas indizadas y particiones. Después de analizar una carga de trabajo, la utilidad dta crea una recomendación para el diseño físico de bases de datos y puede generar la secuencia de comandos necesaria para implementar la recomendación. Las cargas de trabajo se pueden especificar desde el símbolo del sistema con el argumento -if o -it. También puede especificar un archivo de entrada XML desde el símbolo del sistema con el argumento -ix. En ese caso, la carga de trabajo se especifica en el archivo de entrada XML.

Sintaxis


            dta
                    [ -? ] |
     [
          [ -S server_name[ \instance ] ]
          {
              { -U login_id [-P password ] }
              | –E             }
              { -D database_name [ ,...n ] }
                  [-d database_name ] 
                  [ -Tl table_list | -Tf table_list_file ]
              { -if workload_file | -it workload_trace_table_name }
              { -s session_name | -ID session_ID }
                  [ -F ]
                          [ -of output_script_file_name ]
                          [ -or output_xml_report_file_name ]
                          [ -ox output_XML_file_name ]
                          [ -rl analysis_report_list [ ,...n ] ]
                          [ -ix input_XML_file_name ]
                          [ -A time_for_tuning_in_minutes ]
                          [ -n number_of_events ]
                  [ -m minimum_improvement ]
                          [ -fa physical_design_structures_to_add ]
                          [ -fp partitioning_strategy ]
                          [ -fk keep_existing_option ]
                          [ -fx drop_only_mode ]
                  [ -B storage_size ]
                  [ -c max_key_columns_in_index ]
                  [ -C max_columns_in_index ]
                          [ -e | -e tuning_log_name ]
                          [ -N online_option]
                          [ -q ]
                        [ -u ]
                       [ -x ]
                       [ -a ]
     ]

Argumentos

  • -?
    Muestra información de uso.
  • -Atime_for_tuning_in_minutes
    Especifica el límite de tiempo de optimización en minutos. dta utiliza el tiempo especificado para optimizar la carga de trabajo y generar una secuencia de comandos con los cambios de diseño físico recomendados. De forma predeterminada dta asume un tiempo de optimización de 8 horas. Si especifica 0 , se permite un tiempo de optimización ilimitado. dta puede acabar de optimizar toda la carga de trabajo antes de que pase el límite de tiempo. No obstante, para asegurarse de que se optimiza toda la carga de trabajo, se recomienda especificar un tiempo de optimización ilimitado (-A 0).
  • -a
    Optimiza la carga de trabajo y aplica la recomendación sin preguntarle.
  • -Bstorage_size
    Especifica el espacio máximo en megabytes que puede usar la partición y el índice recomendados. Cuando se optimizan varias bases de datos, se tienen en cuenta las recomendaciones para todas las bases de datos sobre el cálculo del espacio. De forma predeterminada, dta asume el menor de los siguientes tamaños de almacenamiento:

    • Tres veces el tamaño actual de los datos sin procesar, que incluye el tamaño total de los índices agrupados y montones de las tablas de la base de datos.
    • El espacio libre en todas las unidades de disco adjuntas más el tamaño de los datos sin procesar.

    El tamaño de almacenamiento predeterminado no incluye los índices no agrupados ni las vistas indizadas.

  • -Cmax_columns_in_index
    Especifica el número máximo de columnas en los índices propuestos por dta. El valor máximo depende de la versión de SQL Server. El valor máximo para SQL Server 2000 es 16, el valor máximo para SQL Server 2005 es 1024. De forma predeterminada, este argumento se establece en 16.
  • -cmax_key_columns_in_index
    Especifica el número máximo de columnas de clave en los índices propuestos por dta. El valor predeterminado es 16, el valor máximo permitido por SQL Server 2005. Este argumento sólo se aplica a SQL Server 2005. dta también tiene en cuenta la creación de índices con columnas incluidas. Los índices recomendados con columnas incluidas pueden sobrepasar el número de columnas especificado en este argumento.
  • -Ddatabase_name
    Especifica el nombre de cada base de datos que se va a optimizar. La primera base de datos es la base de datos predeterminada. Puede especificar varias bases de datos separando los nombres de la base de datos con comas, por ejemplo:

    dta –D database_name1, database_name2...
    

    De forma alternativa, puede especificar varias bases de datos utilizando el argumento –D para cada nombre de base de datos, por ejemplo:

    dta –D database_name1 -D database_name2... n
    

    El argumento -D es obligatorio. Si el argumento -d no se ha especificado, dta inicialmente se conecta con la base de datos que se ha especificado con la primera cláusula de USE database_name en la carga de trabajo. Si no hay ninguna cláusula explícita de USE database_name en la carga de trabajo, debe usar el argumento -d.

    Por ejemplo, si tiene una carga de trabajo que no contiene ninguna cláusula explícita de USE database_name y utiliza el siguiente comando de dta, no se generará ninguna recomendación:

    dta -D db_name1, db_name2...
    

    No obstante, si usa la misma carga de trabajo y utiliza el siguiente comando de dta que usa el argumento -d, se generará una recomendación:

    dta -D db_name1, db_name2 -d db_name1
    
  • -ddatabase_name
    Especifica la primera base de datos a la que se conecta dta cuando optimiza una carga de trabajo. Sólo se puede especificar una base de datos para este argumento. Por ejemplo:

    dta -d adventureworks ...
    

    Si se especifican varios nombres de bases de datos, dta devuelve un error. El argumento -d es opcional.

    Si utiliza un archivo de entrada XML, puede especificar la primera base de datos a la que se conecta dta utilizando el elemento DatabaseToConnect que se encuentra debajo del elemento TuningOptions. Para obtener más información, vea Referencia del archivo de entrada XML (DTA).

    Si sólo optimiza una base de datos, el argumento -d proporciona una funcionalidad similar al argumento -d en la utilidad sqlcmd, pero no ejecuta la instrucción USE de database_name. Para obtener más información, vea sqlcmd (utilidad).

  • -E
    Utiliza una conexión de confianza en lugar de solicitar una contraseña. Debe usarse el argumento -E o el argumento -U, que especifica un Id. de inicio de sesión.
  • -etuning_log_name
    Especifica el nombre de la tabla o del archivo en el que dta registra eventos que no puede optimizar. La tabla se crea en el servidor en el que se realiza la optimización.

    Si se usa una tabla, especifique su nombre en el formato: [database_name].[owner_name].table_name. La siguiente tabla muestra los valores predeterminados para cada parámetro:

    Parámetros

  • -F
    Permite que dta sobrescriba un archivo de salida existente. Si ya existe un archivo de salida con el mismo nombre y no se especifica -F, dta devuelve un error. Puede usar -F con -of, -or o -ox.
  • -faphysical_design_structures_to_add
    Especifica los tipos de estructuras de diseño físico que dta debe incluir en la recomendación. En la tabla siguiente se muestran y describen los valores que se pueden especificar para este argumento. Cuando no se especifica ningún valor, dta utiliza el -faIDX predeterminado.

    Valor Descripción

    IDX_IV

    Índices y vistas indizadas. Para obtener más información acerca de las versiones de SQL Server que no admiten esta opción de optimización, vea Opciones de optimización no admitidas.

    IDX

    Sólo índices.

    IV

    Sólo vistas indizadas. Para obtener más información acerca de las versiones de SQL Server que no admiten esta opción de optimización, vea Opciones de optimización no admitidas.

    NCL_IDX

    Sólo índices no agrupados.

  • -fkkeep_existing_option
    Especifica las estructuras de diseño físico que dta debe conservar cuando cree su recomendación. En la tabla siguiente se muestran y describen los valores que se pueden especificar para este argumento:
<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="header">
<th>Valor</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>NONE</p></td>
<td><p>Ninguna estructura existente</p></td>
</tr>
<tr class="even">
<td><p>ALL</p></td>
<td><p>Todas las estructuras existentes</p></td>
</tr>
<tr class="odd">
<td><p>ALIGNED</p></td>
<td><p>Todas las estructuras alineadas de partición</p></td>
</tr>
<tr class="even">
<td><p>CL_IDX</p></td>
<td><p>Todos los índices agrupados en las tablas</p></td>
</tr>
<tr class="odd">
<td><p>IDX</p></td>
<td><p>Todos los índices agrupados y no agrupados de las tablas</p></td>
</tr>
</tbody>
</table>
  • -fppartitioning_strategy
    Especifica si las nuevas estructuras de diseño físico (índices y vistas indizadas) que dta propone se deben dividir y cómo se deben dividir. En la tabla siguiente se muestran y describen los valores que se pueden especificar para este argumento:

    Valor Descripción

    NONE

    No crear particiones

    FULL

    Particiones completas (para mejorar el rendimiento)

    ALIGNED

    Sólo particiones alineadas (para mejorar la capacidad de administración)

    ALIGNED significa que, en la recomendación generada por dta, cada índice propuesto se divide exactamente igual que la tabla subyacente para la que se ha definido el índice. Los índices no agrupados de una vista indizada se alinean con la vista indizada. Sólo se puede especificar un valor para este argumento. El valor predeterminado es -fpNONE.

  • -fxdrop_only_mode
    Especifica que dta sólo tiene en cuenta eliminar estructuras de diseño físicas existentes. No se tienen en cuenta las nuevas estructuras de diseño físico. Cuando se especifica esta opción, dta analiza la utilidad de las estructuras de diseño físico existentes y recomienda la eliminación de las estructuras que se utilizan rara vez. Este argumento no necesita valores. No se puede usar con los argumentos -fa, -fp ni -fk ALL
  • -IDsession_ID
    Especifica un identificador numérico para la sesión de optimización. Si no se especifica, dta genera un número de Id. Puede usar este identificador para ver información para sesiones de optimización existentes. Si no especifica un valor para -ID, debe especificarse un nombre de sesión con -s.
  • -ifworkload_file
    Especifica el nombre y la ruta del archivo de carga de trabajo que se desea usar como entrada para la optimización. El archivo debe estar en uno de estos formatos: .trc (archivo de traza del Analizador de SQL Server), .sql (archivo de SQL), o .log (archivo de traza de SQL Server). Debe especificarse un archivo de carga de trabajo o una tabla de carga de trabajo.
  • -itworkload_trace_table_name
    Especifica el nombre de una tabla que contiene la traza de carga de trabajo para la optimización. El nombre se debe especificar en el formato: [database_name].[owner_name]**.**table_name.

    En la tabla siguiente se muestran los valores predeterminados para cada parámetro:

    Parámetros Valor predeterminado

    database_name

    database_name especificado con la opción –D.

    owner_name

    dbo.

    table_name

    Ninguno

    [!NOTA] owner_name debe ser dbo. Si se especifica cualquier otro valor, la ejecución de dta no será correcta y se devolverá un error. Tenga en cuenta también que debe especificarse una tabla de carga de trabajo o un archivo de carga de trabajo.

  • -ixinput_XML_file_name
    Especifica el nombre del archivo XML que contiene la información de entrada dta. Debe ser un documento XML válido que cumpla con DTASchema.xsd. Los argumentos que entren en conflicto especificados desde el símbolo del sistema para las opciones de optimización anulan el valor correspondiente en este archivo XML. La única excepción se produce cuando se usa una configuración especificada por el usuario en el modo de evaluación del archivo de entrada XML. Por ejemplo, si se especifica una configuración en el elemento Configuration del archivo de entrada XML y el elemento EvaluateConfiguration también se especifica como una de las opciones de optimización, las opciones de optimización especificadas en el archivo de entrada XML anulan las opciones de optimización especificadas desde el símbolo del sistema.
  • -mminimum_improvement
    Especifica el porcentaje mínimo de mejora que debe satisfacer la configuración recomendada.
  • -Nonline_option
    Especifica si las estructuras de diseño físico se crean en línea. En la tabla siguiente se muestran y describen los valores que pueden especificarse para este argumento:

    Valor Descripción

    OFF

    No se pueden crear en línea las estructuras recomendadas de diseño físico.

    ON

    Se pueden crear en línea todas las estructuras recomendadas de diseño físico.

    MIXED

    Siempre que es posible, el Asistente para la optimización de motor de base de datos intenta recomendar las estructuras de diseño físico que se pueden crear en línea.

    Si los índices se crean en línea, se anexa ONLINE = ON a la definición del objeto.

  • -nnumber_of_events
    Especifica el número de eventos de la carga de trabajo que dta debe optimizar. Si se especifica este argumento y la carga de trabajo es un archivo de traza que contiene información de duración, dta optimiza los eventos en orden decreciente de duración. Este argumento es útil para comparar dos configuraciones de estructuras de diseño físico. Para comparar dos configuraciones, especifique el mismo número de eventos que se optimizarán para ambas configuraciones y después especifique un tiempo de optimización ilimitado para las dos de la siguiente manera:

    dta -n number_of_events -A 0
    

    En este caso es importante especificar un tiempo de optimización ilimitado (-A 0). De lo contrario, el Asistente para la optimización de motor de base de datos asume un tiempo de optimización de 8 horas de forma predeterminada.

  • -ofoutput_script_file_name
    Especifica que dta escriba la recomendación como una secuencia de comandos de Transact-SQL en el nombre de archivo y el destino especificados.

    Puede usar -F con esta opción. Asegúrese de que el nombre de archivo es exclusivo, especialmente si también utiliza -or y -ox.

  • -oroutput_xml_report_file_name
    Especifica que dta escribe la recomendación en un informe de salida en XML. Si se proporciona un nombre de archivo, las recomendaciones se escriben en ese destino. De lo contrario, dta utiliza el nombre de sesión para generar el nombre de archivo y lo escribe en el directorio actual.
Puede usar **-F** con esta opción. Asegúrese de que el nombre de archivo es exclusivo, especialmente si también utiliza **-of** y **-ox**.
  • -oxoutput_XML_file_name
    Especifica que dta escriba la recomendación como un archivo XML en el nombre de archivo y el destino especificados. Asegúrese de que el Asistente para la optimización de motor de base de datos tiene permiso para escribir en el directorio de destino.

    Puede usar -F con esta opción. Asegúrese de que el nombre de archivo es exclusivo, especialmente si también utiliza -of y -or.

  • -Ppassword
    Especifica la contraseña para el identificador de inicio de sesión. Si no se utiliza esta opción, dta le pide una contraseña.
  • -q
    Establece el modo silencioso. No se escribe ninguna información en la consola, ni siquiera información de progreso o de encabezado.
  • -rlanalysis_report_list
    Especifica la lista de informes de análisis que se crearán. En la tabla siguiente se muestran los valores que se pueden especificar para este argumento:

    Valor Informe

    ALL

    Todos los informes de análisis

    STMT_COST

    Informe de costo de instrucciones

    EVT_FREQ

    Informe de frecuencia de eventos

    STMT_DET

    Informe de detalles de instrucciones

    CUR_STMT_IDX

    Informe relacional de instrucciones e índices (configuración actual)

    REC_STMT_IDX

    Informe relacional de instrucciones e índices (configuración recomendada)

    STMT_COSTRANGE

    Informe de intervalo de costo de instrucciones

    CUR_IDX_USAGE

    Informe de uso de índices (configuración actual)

    REC_IDX_USAGE

    Informe de uso de índices (configuración recomendada)

    CUR_IDX_DET

    Informe de detalles de índices (configuración actual)

    REC_IDX_DET

    Informe de detalles de índices (configuración recomendada)

    VIW_TAB

    Informe relacional de vistas y tablas

    WKLD_ANL

    Informe de análisis de carga de trabajo

    DB_ACCESS

    Informe de acceso a bases de datos

    TAB_ACCESS

    Informe de acceso a tablas

    COL_ACCESS

    Informe de acceso a columnas

    Especifique varios informes separando los valores con comas, por ejemplo:

    ... -rl EVT_FREQ, VIW_TAB, WKLD_ANL ...
    
  • -Sserver_name[ \instance]
    Especifica el nombre del equipo y la instancia de SQL Server a la que conectarse. Si no se especifica ningún valor de server_name, dta se conecta con la instancia predeterminada de SQL Server en el equipo local. Esta opción es necesaria cuando se conecta con una instancia con nombre o cuando se ejecuta dta desde un equipo remoto de la red.
  • -ssession_name
    Especifica el nombre de la sesión de optimización. Es necesario si no se especifica -ID.
  • -Tftable_list_file
    Especifica el nombre de un archivo que contiene una lista de tablas a optimizar. Cada tabla enumerada en el archivo debe empezar en una nueva línea. Los nombres de tabla deben tener nombres en tres partes, por ejemplo, adventureworks.dbo.department. Opcionalmente, para invocar la característica de escala de tablas, el nombre de una tabla existente puede ir seguido de un número que indica el número previsto de filas de la tabla. El Asistente para la optimización de motor de base de datos toma en consideración el número proyectado de filas a la vez que optimiza o evalúa instrucciones de la carga de trabajo que hacen referencia a esas tablas. Tenga en cuenta que puede haber uno o más espacios entre el número de number_of_rows y table_name.

    Este es el formato de archivo de table_list_file:

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    Este argumento es una alternativa a especificar una lista de tablas en el símbolo del sistema (-Tl). No utilice un archivo de lista de tabla (-Tf) si está utilizando -Tl. Si se usan ambos argumentos, dta devuelve un error.

    Si se omiten los argumentos -Tf y -Tl, todas las tablas de usuario de las bases de datos especificadas se tienen en cuenta para la optimización.

  • -Tltable_list
    Especifica en el símbolo del sistema una lista de tablas que se optimizarán. Utilice una coma entre los nombres de tabla para separarlos. Si sólo se especifica una base de datos con el argumento -D, no es necesario calificar los nombres de tabla con un nombre de base de datos. De lo contrario, se requiere el nombre completo en el formato database_name.schema_name.table_name para cada tabla.

    Este argumento es una alternativa al uso de un archivo de lista de tablas (-Tf). Si se utilizan los argumentos -Tl y -Tf, dta devuelve un error.

  • -Ulogin_id
    Especifica el Id. de inicio de sesión para conectar con SQL Server.
  • -u
    Inicia la GUI del Asistente para la optimización de motor de base de datos. Todos los parámetros se tratan como la configuración inicial para la interfaz de usuario.
  • -x
    Inicia la sesión de optimización y se cierra.

Notas

Presione CTRL+C una vez para detener la sesión de optimización y crear recomendaciones basándose en el análisis que dta ha completado hasta este punto. Se le solicitará que decida si desea o no generar recomendaciones. Presione CTRL+C de nuevo para detener la sesión de optimización sin generar recomendaciones.

Ejemplos

A. Optimizar una carga de trabajo que incluye índices y vistas indizadas en su recomendación

Este ejemplo utiliza una conexión segura (-E) para conectar con la base de datos tpcd1G en MyServer para analizar una carga de trabajo y crear recomendaciones. Escribe la salida en un archivo de secuencia de comandos denominado script.sql. Si este archivo ya existe, dta sobrescribirá el archivo porque se ha especificado el argumento -F. La sesión de optimización se ejecuta durante un período de tiempo ilimitado para garantizar un completo análisis de la carga de trabajo (-A 0). La recomendación debe proporcionar una mejora mínima del 5% (-m 5). dta debe incluir índices y vistas indizadas en su recomendación final (-fa IDX_IV).

dta –S MyServer –E -D tpcd1G -if tpcd_22.sql -F –of script.sql –A 0 -m 5 -fa IDX_IV

B. Limitar la utilización del disco

Este ejemplo limita el tamaño total de la base de datos, que incluye los datos sin procesar y los índices adicionales, hasta 3 gigabytes (GB) (-B 3000) y dirige la salida a d:\result_dir\script1.sql. Se ejecuta durante 1 hora como máximo (-A 60).

dta –D tpcd1G –if tpcd_22.sql -B 3000 –of "d:\result_dir\script1.sql" –A 60

C. Limitar el número de consultas optimizadas

Este ejemplo limita el número de consultas leídas desde el archivo orders_wkld.sql hasta un máximo de 10 (-n 10) y se ejecuta durante 15 minutos (-A 15), lo que se dé primero. Para asegurarse de que se optimizan las 10 consultas, especifique un tiempo de optimización ilimitado con -A 0. Si el tiempo es importante, especifique un límite de tiempo adecuado estableciendo el número de minutos que está disponible para optimizar con el argumento -A como se muestra en este ejemplo.

dta –D orders –if orders_wkld.sql –of script.sql –A 15 -n 10

D. Optimizar tablas específicas enumeradas en un archivo

Este ejemplo muestra el uso de table_list_file (el argumento -Tf). El contenido del archivo table_list.txt es el siguiente:

adventureworks.dbo.customer  100000
adventureworks.dbo.store
adventureworks.dbo.product  2000000

El contenido de table_list.txt especifica que:

  • Sólo deben optimizarse las tablas customer, store y product de la base de datos.
  • Se asume que el número de filas de las tablas customer y product es 100.000 y 2.000.000, respectivamente.
  • Se supone que el número de filas de store es igual al número actual de filas de la tabla.

Tenga en cuenta que puede haber uno o más espacios entre el número de filas y el nombre de tabla que lo precede en table_list_file.

El tiempo de optimización es de 2 horas (-A 120) y la salida se escribe en un archivo XML (-ox XMLTune.xml).

dta –D pubs –if pubs_wkld.sql –ox XMLTune.xml –A 120 –Tf table_list.txt

Vea también

Conceptos

Utilidades del símbolo del sistema

Otros recursos

Referencia del Asistente para la optimización de motor de base de datos

Ayuda e información

Obtener ayuda sobre SQL Server 2005