Cómo generar una secuencia de comandos de los metadatos de base de datos necesarios para crear una base de datos sólo estadísticas de SQL Server 2005 y en SQL Server 2008

Seleccione idioma Seleccione idioma
Id. de artículo: 914288 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

El optimizador de consultas en Microsoft SQL Server 2005 o en Microsoft SQL Server 2008 utiliza los siguientes tipos de información para determinar un plan de consulta óptimo:
  • Los metadatos de base de datos
  • El entorno de hardware
  • El estado de sesión de base de datos
Normalmente, debe simular todos estos mismos tipos de información si desea reproducir el comportamiento del optimizador de consultas en un sistema de prueba.

Servicios de soporte técnico de Microsoft puede pedirle que generar una secuencia de comandos de los metadatos de base de datos. El servicio de soporte de cliente de Microsoft utiliza esta secuencia de comandos de los metadatos de base de datos para investigar un problema del optimizador. En este artículo describe los pasos para generar la secuencia de comandos estadísticas. El artículo también describe cómo el optimizador de consultas utiliza la información.

Más información

Si utiliza SQL Server 2005, antes de seguir los pasos para generar la secuencia de comandos, asegúrese de que SQL Server Management Studio es la versión de SQL Server 2005 Service Pack 2 o una versión posterior. Si utiliza versiones anteriores de SQL Server Management Studio en SQL Server 2005, el Asistente para secuencias de comandos no contiene todas las opciones necesarias para los pasos descritos en este artículo para que funcione correctamente.

Secuencia de comandos toda la base de datos

Cuando se genera una base de datos clon sólo estadísticas, puede ser más fácil y más confiable de secuencia de comandos la base de datos completa en lugar de secuencias de comandos los objetos individuales. Cuando la secuencia de comandos toda la base de datos, recibe las siguientes ventajas:
  • Evitar problemas con objetos dependientes que son necesarios para reproducir el problema de falta.
  • Requieren mucho menos pasos para seleccionar los objetos necesarios.
Nota Si genera una secuencia de comandos para una base de datos y los metadatos de la base de datos contienen miles de objetos, el proceso de secuencias de comandos consume recursos CPU significativos. Recomendamos que generar la secuencia de comandos durante horas. O bien, puede utilizar la segunda opción para generar la secuencia de comandos para objetos individuales.

Para cada base de datos que se hace referencia por su consulta de secuencia de comandos, siga estos pasos:
  1. Abra SQL Server Management Studio.
  2. En el Explorador de objetos , expanda bases de datos y buscar a continuación, la base de datos que desea agregar secuencias de comandos.
  3. Haga clic con el botón secundario del mouse en la base de datos, seleccione las tareas y, a continuación, haga clic en Generar secuencias de comandos .
  4. En el Asistente para secuencias de comandos, compruebe que está activada la base de datos correcto. Haga clic en casilla de verificación script todos los objetos en la base de datos seleccionado y, a continuación, haga clic en siguiente .
  5. En el cuadro de diálogo Elegir opciones de secuencias de comandos , cambiar la configuración siguiente el valor predeterminado del sistema al valor que se muestra en la tabla siguiente.
    Contraer esta tablaAmpliar esta tabla
    Opción de secuencias de comandosValor que seleccione
    relleno ANSI Es True
    continuar Scripting on error Es True
    Generar secuencia de comandos para objetos dependientes Es True
    incluir nombres de restricción del sistema Es True
    intercalación de secuencia de comandos Es True
    Crear base de datos de secuencia de comandos Es True
    conexiones de la secuencia de comandos Es True
    permisos de nivel de objeto de secuencia de comandos Es True
    estadísticas de la secuencia de comandos Estadísticas de la secuencia de comandos y los histogramas
    Incluir índices Es True
    desencadenadores de la secuencia de comandos Es True
    Nota La opción de Conexiones de secuencias de comandos y la opción Permisos de objeto Script es posible que no sea necesarias a menos que el esquema contiene objetos que pertenecen a inicios de sesión no sea dbo .
  6. Haga clic en siguiente .
  7. Haga clic en la opción de secuencia de comandos para archivos y, a continuación, escriba un nombre de archivo.
  8. Haga clic en Finalizar .

Objetos individuales de secuencia de comandos

Puede que sólo secuencia de comandos objetos individuales que se hace referencia una consulta determinada en lugar de secuencias de comandos completa de la base de datos. Sin embargo, a menos que se han creado todos los objetos de base de datos mediante la cláusula WITH SCHEMABINDING, la información de dependencia de la tabla de sistema sys.depends no siempre es precisa. Esta inexactitud puede producir uno de los problemas siguientes:
  • El proceso de secuencias de comandos no secuencias de comandos un objeto dependiente.
  • El proceso de secuencias de comandos puede incluir objetos en orden incorrecto. Para ejecutar correctamente la secuencia de comandos, debe editar manualmente la secuencia de comandos generada.
Por lo tanto, no se recomienda incluir los objetos individuales, a menos que la base de datos tenga montones de objetos y secuencias de comandos en caso contrario tardaría demasiado largo. Si debe utilizar objetos de secuencia de comandos individuales, siga estos pasos:
  1. En SQL Server Management Studio, expanda bases de datos y buscar a continuación, la base de datos que desea agregar secuencias de comandos.
  2. Haga clic con el botón secundario del mouse en la base de datos, elija Base de datos de secuencias de comandos como , seleccione CREATE a y a continuación, haga clic en archivo .
  3. Escriba un nombre de archivo y, a continuación, haga clic en Guardar .

    El contenedor de base de datos principal se secuencias de comandos. Este contenedor incluye los archivos, grupos de archivos, la base de datos y propiedades.
  4. Haga clic con el botón secundario del mouse en la base de datos, seleccione las tareas y, a continuación, haga clic en Generar secuencias de comandos .
  5. Asegúrese de que la base de datos correcto está seleccionado y, a continuación, haga clic en siguiente .
  6. En el cuadro de diálogo Elegir opciones de secuencias de comandos , cambiar la configuración siguiente el valor predeterminado del sistema al valor que se muestra en la tabla siguiente.
    Contraer esta tablaAmpliar esta tabla
    Opción de secuencias de comandosValor que seleccione
    relleno ANSI Es True
    continuar Scripting on error Es True
    incluir nombres de restricción del sistema Es True
    Generar secuencia de comandos para objetos dependientes Es True
    intercalación de secuencia de comandos Es True
    conexiones de la secuencia de comandos Es True
    permisos de nivel de objeto de secuencia de comandos Es True
    estadísticas de la secuencia de comandos Estadísticas de la secuencia de comandos y los histogramas
    secuencia de comandos USE DATABASE Es True
    Incluir índices Es True
    desencadenadores de la secuencia de comandos Es True
    Nota La opción de Conexiones de secuencias de comandos y la opción Permisos de objeto Script es posible que no sea necesarias a menos que el esquema contiene objetos que pertenecen a inicios de sesión no sea dbo .
  7. En el cuadro de diálogo Elegir tipos de objetos , seleccione todos los tipos de objeto base de datos que hace referencia la consulta problemática.

    Por ejemplo, si la consulta sólo hace referencia a tablas, seleccione las tablas . Si la consulta hace referencia a una vista, seleccione vistas y tablas . Si la consulta problemática utiliza una función definida por el usuario, seleccione funciones .
  8. Cuando haya seleccionado todos los tipos de objeto que hace referencia la consulta, haga clic en siguiente .
  9. Aparece un cuadro de diálogo para cada tipo de objeto de base de datos seleccionado en el paso 7. En cada cuadro de diálogo, seleccione las tablas específicas, vistas, funciones o otros objetos de base de datos y, a continuación, haga clic en siguiente .
  10. Haga clic en la opción de secuencia de comandos para archivos y, a continuación, especifique el mismo nombre de archivo que escribió en el paso 3.
  11. Haga clic en Finalizar para iniciar la secuencia de comandos.
Cuando la secuencia de comandos ha terminado, enviar el archivo de secuencia de comandos para el ingeniero de soporte técnico de Microsoft. El ingeniero de soporte técnico de Microsoft también puede solicitar la información siguiente:
  • La configuración de hardware, incluido el número de procesadores y existe cuánta memoria física
  • Las opciones SET que estaban activas cuando se ejecutó la consulta
Nota Que se haya ya proporcionado esta información enviando un informe SQLDiag o una traza del Analizador de SQL. Puede haber también utilizado otro método para proporcionar esta información.

Cómo se utiliza la información

Las siguientes tablas ayudan a explicar cómo el optimizador de consultas utiliza esta información para seleccionar un plan de consulta.

Metadatos

Contraer esta tablaAmpliar esta tabla
RestriccionesCon frecuencia, el optimizador de consultas utiliza las restricciones para detectar las contradicciones entre la consulta y el esquema subyacente. Por ejemplo, si la consulta tiene un "WHERE col = 5" cláusula y un "CHECK (col < 5)" existe la restricción check, el optimizador sabe que no hay filas coincidirá.

El optimizador de consultas toma tipos similares de deducciones sobre la aceptación de valores NULL. Por ejemplo, la cláusula "WHERE col IS NULL" se sabe que ser true o false dependiendo de la capacidad de la columna Aceptar null, y si la columna es de la tabla externa de una combinación externa. La presencia de las restricciones FOREIGN KEY es útil para determinar el orden de combinación adecuado y cardinalidad. El optimizador de consultas puede utilizar la información de restricción para eliminar las combinaciones o simplificar predicados. Estos cambios pueden quitar el requisito para tener acceso a las tablas base.
EstadísticasLa información de estadísticas contiene densidad y un histograma muestra la distribución de la columna a la izquierda de la clave de índice y estadísticas. Según la naturaleza del predicado, el optimizador de consultas puede utilizar densidad, el histograma o ambos para estimar la cardinalidad de un predicado. Las estadísticas actualizadas son necesarias para las estimaciones de cardinalidad exacta. Las estimaciones de cardinalidad se utilizan como una entrada en estimar el costo de un operador. Por lo tanto, debe tener las estimaciones de cardinalidad buena para obtener planes de consulta óptimo.
Tamaño de tabla (número de filas y las páginas)El optimizador de consultas utiliza los histogramas y densidad para calcular la probabilidad de que un predicado dado sea true o false. La estimación de cardinalidad final se calcula multiplicando la probabilidad por el número de filas que se devuelven por el operador secundario. El número de páginas en la tabla o el índice es un factor en estimar el costo de E/S. Tamaño de la tabla se utiliza para calcular el costo de un análisis y resulta útil al calcular el número de páginas que se tendrá acceso durante una búsqueda de índice.
Opciones de base de datosVarias opciones de base de datos pueden afectar a optimización. Las opciones AUTO_CREATE_STATISTICS y AUTO_UPDATE_STATISTICS afectan a si el optimizador de consultas creará las nuevas estadísticas o estadísticas de actualización que no están actualizadas. El nivel de PARAMETERIZATION afecta a cómo la consulta de entrada está parametrizada antes de la consulta de entrada se pasa al optimizador de consultas. Parametrización puede afectar al cálculo de cardinalidad y, también puede evitar comparación con las vistas indizadas y otros tipos de optimizaciones. La configuración de DATE_CORRELATION_OPTIMIZATION hace que el optimizador buscar las correlaciones entre las columnas. Esta configuración afecta a estimación de cardinalidad y costo.

Entorno

Contraer esta tablaAmpliar esta tabla
Opciones SET de sesiónEl ANSI_NULLS configuración afecta a si el "NULL = NULL" expresión se evalúa como true. Estimación de cardinalidad para las combinaciones externas puede cambian dependiendo de la configuración actual. Además, también pueden cambiar expresiones ambiguas. Por ejemplo, el "col = NULL" evalúa variará según la configuración. Sin embargo, el "col IS NULL" expresión siempre da como resultado la misma manera.
Recursos de hardwareEl costo para operadores de ordenación y hash depende de la cantidad relativa de memoria que está disponible para SQL Server. Por ejemplo, si el tamaño de los datos es mayor que la caché, el optimizador sabe que los datos deben siempre se poner en cola en el disco. Sin embargo, si el tamaño de los datos es mucho menor que la caché, la operación es probable que realizarse en memoria. SQL Server, también se considera que las optimizaciones diferentes si el servidor tiene más de un procesador y si no se ha deshabilitado paralelismo mediante una sugerencia "MAXDOP" o la opción de configuración max degree of parallelism .
SQL Server estándar (SKU) de la unidad de mantenerAlgunas características sólo están habilitados en ediciones específicas de SQL Server 2005 o SQL Server 2008. Por ejemplo, que coinciden con una consulta en las vistas indizadas sólo se produce en SQL Server 2005 Enterprise Edition. De forma similar, la comparación con las guías de plan está limitado a SQL Server 2000 Standard Edition y SQL Server 2005 Enterprise Edition.

Propiedades

Id. de artículo: 914288 - Última revisión: martes, 07 de abril de 2009 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo KB914288 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 914288

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com