Cómo solucionar problemas de ejecución lenta consultas en SQL Server 7.0 o en versiones posteriores

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

En esta página

Resumen

En este artículo describe cómo controlar un problema de rendimiento que las aplicaciones pueden experimentar junto con Microsoft SQL Server: reducir el rendimiento de una consulta específica o un grupo de consultas. Si esté solucionando un problema de rendimiento, pero no haya aislado el problema en una consulta específica o un grupo pequeño de consultas que realizan más lentamente de lo esperado, consulte el artículo siguiente en Microsoft Knowledge Base antes de continuar:
224587Cómo: Solucionar problemas de rendimiento de aplicaciones con SQL Server
En este artículo se basa en el supuesto de que haya utilizado el artículo 224587 para reducir el alcance del problema y que ha capturado una traza del Analizador de SQL con las columnas de eventos y datos específicas que se detallan en el artículo 224587.

Optimización de consultas de base de datos puede ser un esfuerzo multifaceta. En las secciones siguientes se describen elementos comunes para examinar cuando está investigando el rendimiento de consulta.

Nota Si utiliza SQL Server 2005, utilice SQL Server Management Studio en lugar del Analizador de consultas SQL y utilizar el Asistente para la optimización de motor de base de datos en lugar del Asistente para optimización de índices.

Comprobar la existencia de los índices correctos

Una de las comprobaciones primera para realizar cuando se produzcan tiempos de ejecución lenta de consulta es un análisis de índice. Si está investigando una sola consulta, puede utilizar la opción de Realizar análisis de índice en el Analizador de consultas SQL; si dispone de una traza del Analizador de SQL de una gran carga de trabajo, puede utilizar al Asistente para optimización de índices. Ambos métodos utilizan el optimizador de consultas de SQL Server para determinar qué índices sería útiles para las consultas especificadas. Esto es un método muy eficaz para determinar si existen los índices correctos en la base de datos.

Para obtener información acerca de cómo utilizar al Asistente para optimización de índices, vea el tema "Asistente para optimización de índices" en libros en pantalla de SQL Server 7.0.

Ha actualizado la aplicación desde una versión anterior de SQL Server, distintos índices esté más eficaces en SQL Server 7.0 debido de optimizador y cambios de motor de almacenamiento. El Asistente para optimización de índices le ayuda a determinar si un cambio en la estrategia de indización podría mejorar el rendimiento.

Para obtener más información acerca de cómo utilizar el Asistente para la optimización de motor de base de datos en lugar del Asistente para optimización de índices en SQL Server 2005, vea los temas siguientes en los libros en pantalla de SQL Server 2005:
  • Diferencias entre la base de datos Asistente para optimización de motor y Asistente para optimización de índices
  • Tutorial del Asistente para la optimización de motor de base de datos

Quitar todas consultas, tablas y sugerencias de combinación

Las sugerencias reemplazan la optimización de consultas y pueden impedir que el optimizador de consultas de elegir el plan de ejecución más rápido. Debido a cambios de optimizador de sugerencias que mejorar el rendimiento en versiones anteriores de SQL Server tenga efecto o negativamente realmente puede afectar al rendimiento en SQL Server 7.0. Además, las sugerencias de combinación pueden producir la degradación del rendimiento basada en las siguientes razones:
  • Sugerencias de combinación impedir que una consulta ad hoc se apto para la parametrización automática y almacenamiento en caché del plan de consultas.
  • Cuando utilice una sugerencia de combinación, implica que desea forzar el orden de combinación para todas las tablas en la consulta, incluso si las combinaciones no utilizan explícitamente una sugerencia.
Si la consulta que se está analizando incluye las sugerencias, quítelos y vuelva a evaluar el rendimiento.

Examine el plan de ejecución

Después de confirmar que existen los índices correctos y que no hay sugerencias son restringir la capacidad del optimizador para generar un plan eficaz, puede examinar el plan de ejecución de consulta. Puede utilizar cualquiera de los métodos siguientes para ver el plan de ejecución de una consulta:
  • Analizador de SQL

    Si captura el evento MISC:Execution Plan en el Analizador de SQL, se producirá inmediatamente antes del evento StmtCompleted para la consulta para el sistema determinado identificador de proceso (SPID).
  • Analizador de consultas SQL: plan de presentación gráfico

    Con la consulta seleccionada en la ventana de consulta, haga clic en el menú consulta y, a continuación, haga clic en Mostrar el plan de ejecución estimado .

    Nota : si el procedimiento almacenado o lote crea y se hace referencia a tablas temporales, debe utilizar una instrucción SET STATISTICS PROFILE ON o crear explícitamente las tablas temporales antes de mostrar el plan de ejecución.
  • SHOWPLAN_ALL y SHOWPLAN_TEXT

    Para recibir una versión de texto del plan de ejecución estimado, puede utilizar las opciones SET SHOWPLAN_ALL y SET SHOWPLAN_TEXT. Consulte "SET SHOWPLAN_ALL (T-SQL)" y "SET SHOWPLAN_TEXT (T-SQL)" temas en libros en pantalla de SQL Server 7.0 para obtener más detalles.

    Nota : si el procedimiento almacenado o lote crea y se hace referencia a tablas temporales, debe utilizar la opción SET STATISTICS PROFILE ON o crear explícitamente las tablas temporales antes de mostrar el plan de ejecución.
  • STATISTICS PROFILE

    Cuando se muestre el plan de ejecución estimado, gráficamente o bien mediante SHOWPLAN, no se ejecuta realmente la consulta. Por lo tanto, si crea tablas temporales en un lote o un procedimiento almacenado, no puede mostrar los planes de ejecución estimado porque las tablas temporales no existirá. STATISTICS PROFILE ejecuta la consulta primero y, a continuación, muestra el plan de ejecución real. Vea el tema "SET STATISTICS PROFILE (T-SQL)" en libros en pantalla de SQL Server 7.0 para obtener más detalles. Cuando se ejecuta en el Analizador de consultas SQL, esto aparece en formato gráfico en la ficha Plan de ejecución en el panel de resultados.
Para obtener más información acerca de cómo mostrar el plan de ejecución estimado en SQL Server 2005, vea el tema "Cómo mostrar el plan de ejecución estimado" en libros en pantalla de SQL Server 2005.

Examine el resultado de SHOWPLAN

Salida de SHOWPLAN proporciona mucha información sobre el plan de ejecución que utiliza SQL Server para una consulta determinada. Los detalles de la información y los eventos generados se describen detalladamente en el capítulo "Optimizar el rendimiento de base de datos" de libros en pantalla de SQL Server 7.0. Éstos son algunos aspectos básicos del plan de ejecución que puede ver para determinar si está utilizando el mejor plan:
  • Uso correcto de índice

    El resultado de plan de presentación muestra cada tabla que está implicado en la consulta y la ruta de acceso que se utiliza para obtener datos de él. Con el plan de presentación gráfica, mueva el puntero sobre una tabla para ver los detalles para cada tabla. Si un índice está en uso, verá "Index Seek"; Si un índice no está en uso, verá en "Buscar tabla" para un montón o "Clustered Index Scan" para una tabla que tiene un índice agrupado. "Exploración de índice agrupado" indica que se está examinando la tabla mediante el índice agrupado, no que se utiliza el índice agrupado a directamente filas individuales de acceso.

    Si determina que existe un índice útil y no se utiliza para la consulta, puede intentar forzar el índice con una sugerencia de índice. Vea el tema "FROM (T-SQL)" en los libros en pantalla de SQL Server para obtener más información sobre sugerencias de índice.
  • Corrija el orden de combinación

    El resultado del plan de presentación indica en qué orden se se combinan las tablas que participan en una consulta. Para las combinaciones de bucle anidado, la tabla superior que aparece es la tabla externa y debe ser el menor de dos tablas. Para las combinaciones hash, la tabla superior se convierte en la entrada de generación y también debe ser el menor de dos tablas. Sin embargo, observe que el orden es menos grave porque el procesador de consultas puede invertir la generación y las entradas de sonda en tiempo de ejecución si encuentra que el optimizador tomado una decisión incorrecta. Puede determinar qué tabla devuelve menos filas comprobando que calcula el recuento de filas en la salida del plan de presentación.

    Si determina que la consulta puede beneficiarse de una orden de combinación diferente, puede intentar forzar el orden de combinación con una sugerencia de combinación. Vea el tema "FROM (T-SQL)" en libros en pantalla de SQL Server 7.0 para obtener más información sobre las sugerencias de combinación.

    Nota : utilizar una sugerencia de combinación en una consulta grande implícitamente obliga a que el orden de combinación para el otro tablas en la consulta como si se estableció FORCEPLAN.
  • Corregir el tipo de combinación

    Bucle de SQL Server utiliza anidado, hash y combinaciones de mezcla. Si una consulta lenta realizar utiliza una técnica de combinación a través de otro, puede intentar forzar a un tipo de combinación diferente. Por ejemplo, si utiliza una combinación hash en una consulta, puede forzar una combinación de bucles anidados mediante la sugerencia de combinación de LOOP. Vea el tema "FROM (T-SQL)" en libros en pantalla de SQL Server 7.0 para obtener más detalles en las sugerencias de combinación.

    Nota : utilizar una sugerencia de combinación en una consulta grande implícitamente obliga a que el tipo de combinación para el otro tablas en la consulta como si se estableció FORCEPLAN.
  • Ejecución paralela

    Si utiliza un equipo multiprocesador, también puede averiguar si un plan paralelo está en uso. Si paralelismo está en uso, verá un evento de PARALELISMO (Gather Streams). Si una consulta determinada es lenta cuando utiliza un plan paralelo, puede intentar forzar un plan paralelo no con la sugerencia OPTION (MAXDOP 1). Vea el tema "SELECT (T-SQL)" en libros en pantalla de SQL Server 7.0 para obtener más detalles.
Para obtener más información acerca de cómo utilizar resultados del plan de ejecución plan de presentación en SQL Server 2005, vea los temas siguientes en los libros en pantalla de SQL Server 2005:
  • Cómo guardar un plan de ejecución en formato XML
  • Planes de presentación XML
  • Seguridad de SHOWPLAN
Precaución : dado que el optimizador de consultas selecciona normalmente el mejor plan de ejecución para una consulta, Microsoft recomienda utilizar las sugerencias de combinación, sugerencias de consulta y las sugerencias de tabla sólo como último recurso y sólo si los administradores de una base de datos experimentados.

Referencias

Los siguientes temas en libros en pantalla de SQL Server 7.0 proporcionan información acerca de optimización de consultas:
  • "Optimizar el rendimiento de aplicación mediante una recuperación eficaz de datos"
  • "Optimización de consulta"
  • "Recomendaciones de optimización de consulta"
  • "Sugerencias de transact-SQL"

Propiedades

Id. de artículo: 243589 - Última revisión: jueves, 15 de diciembre de 2005 - Versión: 5.4
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbmt kbhowtomaster KB243589 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): 243589

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