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
- -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 deUSE 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