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.
A continuación se enumeran algunos de los motivos más comunes que pueden provocar la ejecución lenta de las consultas y actualizaciones:
- Comunicaciones de red lentas.
- Memoria inadecuada en el equipo servidor o falta de memoria disponible para SQL Server.
- Falta de columnas indizadas o estadísticas útiles.
- Estadísticas obsoletas en las columnas indizadas.
- Falta de índices útiles.
- Falta de vistas indizadas útiles.
- Falta de creación de bandas de datos útiles.
- Falta de particiones útiles.
Lista de comprobación para solucionar problemas relacionados con las consultas de ejecución lenta
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:
Sugerencia: |
---|
Para ahorrar tiempo, consulte esta lista de comprobación antes de ponerse en contacto con el proveedor de soporte técnico. |
- ¿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 utilizarse para supervisar el rendimiento de SQL Server y de los componentes no relacionados con SQL Server. Para obtener más información, vea Supervisar el uso de recursos (Monitor de sistema). - Si el problema de rendimiento está relacionado con las consultas, ¿qué consulta o conjunto de consultas está implicado?
Utilice primero el Analizador de SQL Server como ayuda para identificar las consultas lentas. Para obtener más información, vea Usar el Analizador de SQL Server.
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 Analizador de SQL Server.
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 Analizador de SQL Server 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. - ¿Se optimizó la consulta con estadísticas útiles?
SQL Server crea automáticamente en columnas indizadas las estadísticas relativas a la distribución de valores en una columna. También se pueden crear manualmente en columnas no indizadas, con SQL Server Management Studio o la instrucción CREATE STATISTICS, o automáticamente si la opción de base de datos AUTO_CREATE_STATISTICS está establecida como TRUE. El procesador de consultas puede utilizar estas estadísticas para determinar la estrategia óptima para evaluar una consulta. El mantenimiento de estadísticas adicionales sobre columnas no indizadas implicadas en operaciones de combinación puede mejorar el rendimiento de las consultas. Para obtener más información, vea Estadísticas de índice.
Supervise la consulta con el Analizador de SQL Server o el plan de ejecución gráfico de SQL Server Management Studio para determinar si la consulta dispone de estadísticas suficientes. Para obtener más información, vea Errores y advertencias (categoría de eventos del motor de base de datos). - ¿Están actualizadas las estadísticas de la consulta? ¿Las estadísticas se actualizan automáticamente?
SQL Server crea y actualiza automáticamente estadísticas de consultas sobre columnas indizadas (siempre y cuando no esté deshabilitada la actualización automática de estadísticas de consultas). También se pueden actualizar manualmente estadísticas en columnas no indizadas mediante SQL Server Management Studio o la instrucción UPDATE STATISTICS, o automáticamente si la opción de base de datos AUTO_UPDATE_STATISTICS está establecida en TRUE. Las estadísticas actualizadas no dependen de datos de hora o fecha. Si no se realizaron operaciones UPDATE, las estadísticas de la consulta siguen estando actualizadas.
Si las estadísticas no se actualizan automáticamente, configúrelas para que se actualicen automáticamente. Para obtener más información, vea Estadísticas de índice. - ¿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 Referencia del 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.
- ¿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.
- ¿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.
- 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.
Vea también
Conceptos
Mostrar planes de ejecución mediante las opciones SET del plan de presentación (Transact-SQL)
Mostrar planes de ejecución mediante las clases de eventos del Analizador de SQL Server
Seguridad del plan de presentación
Instrucciones Transact-SQL que generan planes de presentación