Lista de comprobación para analizar consultas de ejecución lenta

La ejecución lenta de las consultas o las actualizaciones puede ser debida a diversos motivos. Las consultas de ejecución lenta pueden deberse a problemas de rendimiento de su red o del equipo en el que SQL Server se ejecuta. También pueden estar provocadas por problemas con el diseño físico de la base de datos.

Existen varios motivos que pueden ralentizar la ejecución de las consultas y las actualizaciones:

  • Comunicaciones de red lentas.

  • Memoria inadecuada en el equipo servidor o falta de memoria disponible para SQL Server.

  • Falta de estadísticas útiles

  • Falta de índices útiles.

  • Falta de vistas indizadas útiles.

  • Falta de creación de bandas de datos útiles.

  • Falta de particiones útiles.

Cuando una consulta o actualización tarda más de lo normal en ejecutarse, hágase las siguientes preguntas, que ayudan a solucionar los motivos que provocan la ejecución lenta de las consultas descritos en la sección anterior:

SugerenciaSugerencia

Para ahorrar tiempo, consulte esta lista de comprobación antes de ponerse en contacto con el proveedor de soporte técnico.

  1. ¿El problema de rendimiento está relacionado con un componente distinto a las consultas? Por ejemplo, ¿el problema se debe al rendimiento lento de la red? ¿Hay algún otro componente que pueda causar o contribuir al deterioro del rendimiento?

    El Monitor de sistema de Windows puede usarse para supervisar el rendimiento de SQL Server y de componentes no relacionados con SQL Server. Para obtener más información, vea Supervisar el uso de recursos (Monitor de sistema).

  2. Si el problema de rendimiento está relacionado con las consultas, ¿qué consulta o conjunto de consultas está implicado?

    Use SQL Server Profiler como ayuda para identificar las consultas lentas. Para obtener más información, vea Usar el Analizador de SQL Server. Use las vistas de administración dinámica de sys.dm_exec_query_stats y sys.dm_exec_requests para buscar consultas similares que colectivamente consumen un número elevado de recursos. Para obtener más información, vea Buscar y optimizar consultas similares utilizando hash del plan de consulta y de consulta.

  3. ¿Cómo analizo el rendimiento de una consulta de ejecución lenta?

    Cuando haya identificado las consultas lentas, puede seguir analizando el rendimiento de las consultas produciendo un plan de presentación, que puede ser un texto, XML o una representación gráfica del plan de ejecución que genera el optimizador de consultas. Puede producir un plan de presentación utilizando las opciones SET de Transact-SQL, SQL Server Management Studio o SQL Server Profiler.

    Para obtener información acerca del uso de las opciones SET de Transact-SQL para mostrar planes de ejecución de texto y XML, vea Mostrar planes de ejecución mediante las opciones SET del plan de presentación (Transact-SQL).

    Para obtener información acerca del uso de SQL Server Management Studio para mostrar planes de ejecución gráficos, vea Mostrar planes de ejecución gráficos (SQL Server Management Studio).

    Para obtener información acerca del uso del SQL Server Profiler para mostrar planes de ejecución de texto y XML, vea Mostrar planes de ejecución mediante las clases de eventos del Analizador de SQL Server.

    La información que recopilan estas herramientas permite determinar cómo el optimizador de consultas de SQL Server ejecuta una consulta y qué índices utiliza. Con esta información, puede determinar si se puede mejorar el rendimiento volviendo a escribir una consulta, cambiando los índices de las tablas o modificando el diseño de la base de datos. Para obtener más información, vea Analizar una consulta.

  4. ¿Se optimizó la consulta con estadísticas útiles?

    El optimizador de consultas utiliza las estadísticas para crear planes de consulta que mejoren el rendimiento de las consultas. Para la mayoría de las consultas, el optimizador de consultas genera ya las estadísticas necesarias para un plan de consulta del alta calidad; en algunos casos, para obtener los mejores resultados es necesario crear estadísticas adicionales o modificar el diseño de la consulta.

    Para obtener más información, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas. En este tema se proporcionan instrucciones con el fin de mejorar la eficacia de las estadísticas para el rendimiento de las consultas. Las instrucciones incluyen lo siguiente:

    • Utilizar las opciones de estadísticas de toda la base de datos. Por ejemplo, debe comprobar que las siguientes opciones de toda la base de datos están activadas: opción automática de creación de estadísticas, AUTO_CREATE_STATISTICS, y opción de actualización de estadísticas, AUTO_UPDATE_STATISTICS. Si están desactivadas, los planes de consulta podrían no ser óptimos y el rendimiento de las consultas podría resultar degradado.

    • Determinar cuándo crear las estadísticas. En algunos pocos casos, puede mejorar los planes de consulta creando estadísticas adicionales con la instrucción CREATE STATISTICS (Transact-SQL). Estas estadísticas adicionales pueden capturar correlaciones estadísticas que el optimizador de consultas no tiene en cuenta cuando crea estadísticas para índices o columnas únicas.

    • Determinar cuándo actualizar las estadísticas. En algunos casos, puede mejorar el plan de consulta, y por consiguiente mejorar el rendimiento de la consulta, actualizando las estadísticas con más frecuencia que la que se produce cuando está activada AUTO_UPDATE_STATISTICS. Puede actualizar las estadísticas con la instrucción UPDATE STATISTICS o con el procedimiento almacenado sp_updatestats.

    • Diseñar consultas que utilicen eficazmente las estadísticas. Algunas implementaciones de consulta, como las variables locales y las expresiones complejas en el predicado de consulta, pueden conducir a planes de consulta que no son óptimos. Las siguientes instrucciones de diseño de consulta para el uso eficaz de las estadísticas pueden evitarlo.

  5. ¿Están disponibles los índices adecuados? ¿Agregar uno o más índices mejoraría el rendimiento de la consulta? Para obtener más información, vea Directrices generales para diseñar índices, Buscar índices que faltan y Introducción al Asistente para la optimización de motor de base de datos. El Asistente para la optimización de Motor de base de datos también puede recomendar la creación de las estadísticas necesarias.

  6. ¿Hay zonas de datos o de índices activas? Considere la posibilidad de crear bandas en disco. La creación de bandas en discos puede implementarse mediante el nivel 0 de RAID (matriz redundante de discos independientes), donde los datos se distribuyen por varias unidades de disco. Para obtener más información, vea Usar archivos y grupos de archivos y RAID.

  7. ¿Dispone el optimizador de consultas de la mejor oportunidad para optimizar una consulta compleja? Para obtener más información, vea Recomendaciones para optimizar consultas.

  8. Si tiene un gran volumen de datos, ¿desea dividirlo? La posibilidad de administrar los datos es la principal ventaja de la creación de particiones, pero si las tablas e índices se dividen de forma similar, la creación de particiones también puede mejorar el rendimiento de las consultas. Para obtener más información, vea Descripción de las particiones y Optimizar el diseño físico de las bases de datos.