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

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 de Microsoft SQL Server utiliza los siguientes tipos de información para determinar un plan de consulta óptimo:
  • Los metadatos de la base de datos
  • El entorno de hardware
  • El estado de sesión de base de datos
Normalmente, se deben simular estos mismos tipos de información si desea reproducir el comportamiento del optimizador de consultas en un sistema de prueba.

Puede solicitar los servicios de soporte técnico de Microsoft para generar una secuencia de comandos de los metadatos de la base de datos. Microsoft Customer Support Services utiliza esta secuencia de comandos de los metadatos de la base de datos para investigar un problema del optimizador. 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 de Script no contiene todas las opciones necesarias para los pasos de este artículo para funcionar correctamente.

Secuencia de comandos de la base de datos completa

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

Para cada base de datos que hace referencia la consulta de la secuencia de comandos, siga estos pasos:
  1. Abra SQL Server Management Studio.
  2. En el Explorador de objetos, expanda bases de datosy, a continuación, busque la base de datos que desea que la secuencia de comandos.
  3. Haga clic en la base de datos, seleccione las tareasy, a continuación, haga clic en Generar secuencias de comandos.
  4. En el Asistente de Script, compruebe que está seleccionada la base de datos. Haga clic para activar la casilla de verificación objetos de secuencia de comandos en la base de datos seleccionada y, a continuación, haga clic en siguiente.
  5. En el cuadro de diálogo Elegir opciones de secuencia de comandos , cambiar la siguiente configuración el valor predeterminado al valor que se muestra en la siguiente tabla.
    Contraer esta tablaAmpliar esta tabla
    Opción secuencias de comandosValor para seleccionar
    Relleno ANSITrue
    Continuar en caso de Error de secuencias de comandosTrue
    Generar secuencia de comandos para objetos dependientesTrue
    Incluir nombres de restricciones del sistemaTrue
    Intercalación de secuencia de comandosTrue
    Crear base de datos de secuencias de comandosTrue
    Inicios de sesión de la secuencia de comandosTrue
    Permisos de nivel de objeto de secuencia de comandosTrue
    Estadísticas de la secuencia de comandosIncluir estadísticas e histogramas
    Incluir los índicesTrue
    Incluir desencadenadoresTrue
    Nota: La Secuencia de comandos de los inicios de sesión y la opción de Permisos de nivel de objeto de secuencia de comandos no podrá exigirse a menos que el esquema contiene objetos que son propiedad de los inicios de sesión que no sean de dbo.
  6. Haga clic en siguiente.
  7. Haga clic en la opción de secuencia de comandos al archivo y, a continuación, escriba un nombre de archivo.
  8. Haga clic en Finalizar.

Objetos de secuencias de comandos individuales

Es posible que sólo secuencias de comandos los objetos individuales que hace referencia una consulta determinada en lugar de secuencias de comandos de la base de datos completa. Sin embargo, a menos que todos los objetos de base de datos se crearon con la cláusula WITH SCHEMABINDING, la información de dependencia en la tabla de sistema sys.depends no sea siempre precisa. Esta inexactitud puede ocasionar uno de los siguientes problemas:
  • El proceso de scripting no incluir un objeto dependiente.
  • El proceso de secuencias de comandos puede incluir objetos en el orden incorrecto. Para ejecutar correctamente la secuencia de comandos, debe editar manualmente el script generado.
Por lo tanto, es recomendable incluir los objetos individuales, a menos que la base de datos tiene muchos objetos y secuencias de comandos de lo contrario puede tardar mucho tiempo. Si debe usar objetos de secuencias de comandos individuales, siga estos pasos:
  1. En SQL Server Management Studio, expanda bases de datosy, a continuación, busque la base de datos que desea que la secuencia de comandos.
  2. Haga clic en la base de datos, seleccione Base de datos de secuencia de comandos como, seleccione CREATE ay, 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 secuencia de comandos. Este contenedor incluye archivos, grupos de archivos, la base de datos y propiedades.
  4. Haga clic en la base de datos, seleccione las tareasy, a continuación, haga clic en Generar secuencias de comandos.
  5. Asegúrese de que está seleccionada la base de datos y, a continuación, haga clic en siguiente.
  6. En el cuadro de diálogo Elegir opciones de secuencia de comandos , cambiar la siguiente configuración el valor predeterminado al valor que se muestra en la siguiente tabla.
    Contraer esta tablaAmpliar esta tabla
    Opción secuencias de comandosValor para seleccionar
    Relleno ANSITrue
    Continuar en caso de Error de secuencias de comandosTrue
    Incluir nombres de restricciones del sistemaTrue
    Generar secuencia de comandos para objetos dependientesTrue
    Intercalación de secuencia de comandosTrue
    Inicios de sesión de la secuencia de comandosTrue
    Permisos de nivel de objeto de secuencia de comandosTrue
    Estadísticas de la secuencia de comandosIncluir estadísticas e histogramas
    Secuencia de comandos de base de datos de usoTrue
    Incluir los índicesTrue
    Incluir desencadenadoresTrue
    Nota: La Secuencia de comandos de los inicios de sesión y la opción de Permisos de nivel de objeto de secuencia de comandos no podrá exigirse a menos que el esquema contiene objetos que son propiedad de los inicios de sesión que no sean de dbo.
  7. En el cuadro de diálogo Elegir tipos de objeto , seleccione todos los tipos de objeto de base de datos que hace referencia la consulta problemática.

    Por ejemplo, si la consulta sólo hace referencia a las tablas, seleccione <b00> </b00>tablas. Si la consulta hace referencia a una vista, seleccione las tablas y vistas. Si la consulta problemática utiliza una función definida por el usuario, seleccione las 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 que seleccionó en el paso 7. En cada cuadro de diálogo, seleccione las tablas específicas, vistas, funciones u 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 al archivo y, a continuación, especifique el mismo nombre que escribió en el paso 3.
  11. Haga clic en Finalizar para iniciar la secuencia de comandos.
Cuando haya finalizado la secuencia de comandos, envíe 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 siguiente información:
  • La configuración de hardware, incluido el número de procesadores y la cantidad de memoria física existe
  • Las opciones SET que estaban activas cuando se ejecutó la consulta
Nota: Puede ha proporcionado esta información mediante el envío de un informe SQLDiag o una traza del analizador de SQL. Puede haber también utilizó otro método para proporcionar esta información.

Utilización de 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 restricciones para detectar las contradicciones entre la consulta y el esquema subyacente. Por ejemplo, si la consulta tiene un "col WHERE = 5" cláusula y una comprobación"(col.< 5)"="" check="" constraint="" exists,="" the="" query="" optimizer="" knows="" that="" no="" rows="" will="">

El optimizador de consultas hace tipos similares de deducciones sobre la aceptación de valores NULL. Por ejemplo, la cláusula "Donde col es NULL" se conoce como true o false dependiendo de la aceptación de valores NULL de la columna, y si la columna es de la tabla externa de una combinación externa. La presencia de las restricciones de clave externa es útil para determinar el orden de combinación adecuada y cardinalidad. El optimizador de consultas puede utilizar la información de restricción para eliminar las combinaciones o simplificar los predicados. Estos cambios pueden quitar el requisito de acceso a las tablas base.
EstadísticasLa información de estadísticas contiene la densidad y un histograma que muestra la distribución de la columna principal de la clave de índice y estadísticas. Dependiendo de la naturaleza del predicado, el optimizador de consultas puede utilizar para estimar la cardinalidad de un predicado de densidad, el histograma o ambos. Las estadísticas actualizadas son necesarios para las estimaciones de cardinalidad exacta. Las estimaciones de cardinalidad se utilizan como entrada al estimar el costo de un operador. Por lo tanto, debe tener las estimaciones de cardinalidad buena para obtener planes de consultas óptimos.
Tamaño de la tabla (número de filas y páginas)El optimizador de consultas utiliza los histogramas y densidad para calcular la probabilidad de que un predicado especificado sea true o false. El cálculo de cardinalidad final se calcula multiplicando la probabilidad por el número de filas que devuelve el operador secundario.El número de páginas en la tabla o el índice es un factor en la estimación de los costos de E/S. Tamaño de la tabla se utiliza para calcular el costo de un análisis y es útil cuando se calcula 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 la optimización. Las opciones AUTO_CREATE_STATISTICS y AUTO_UPDATE_STATISTICS afecta a si el optimizador de consultas creará nuevas estadísticas o actualización de estadísticas que no están actualizadas. El nivel de PARAMETRIZACIÓN afecta a cómo se parametriza la consulta de entrada antes de que la consulta de entrada se pasa al optimizador de consultas. Parametrización puede afectar al cálculo de cardinalidad y también puede impedir que la comparación con las vistas indizadas y otros tipos de optimizaciones. La opción DATE_CORRELATION_OPTIMIZATION hace que el optimizador buscar correlaciones entre las columnas. Esta configuración afecta a la estimación de coste y cardinalidad.

Medio ambiente

Contraer esta tablaAmpliar esta tabla
ESTABLECER las opciones de sesiónEl ANSI_NULLS ajuste afecta a si el "NULL = NULL" expresión se evalúa como true. Cálculo de cardinalidad para las combinaciones externas puede cambiar dependiendo de la configuración actual. Además, también pueden cambiar las expresiones ambiguas. Por ejemplo, el "col = NULL" expresión se evalúa como varían en función de la configuración. Sin embargo, la "col IS NULL" expresión siempre evalúa de la misma manera.
Recursos de hardwareEl costo de los operadores de ordenación y hash depende de la cantidad relativa de memoria disponible para SQL Server. Por ejemplo, si el tamaño de los datos es mayor que la memoria caché, el optimizador de consultas sabe que los datos siempre deben poner en cola en el disco. Sin embargo, si el tamaño de los datos es mucho menor que la memoria caché, la operación es probable que se realiza en la memoria. SQL Server también tiene en cuenta otras optimizaciones si el servidor tiene más de un procesador y si no se ha deshabilitado el paralelismo con una sugerencia "MAXDOP" o la opción de configuración de grado máximo de paralelismo .

Propiedades

Id. de artículo: 914288 - Última revisión: martes, 27 de enero de 2015 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • 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
  • 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
Palabras clave: 
kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo kbmt 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