Tecnología

Inicio

Rendimiento Tiempo de espera de SQL Server

Rendimiento Tiempo de espera de SQL Server


El rendimiento de las aplicaciones de bases de datos es a menudo depende de la de su software de SQL Server y desaceleraciones o tiempos de espera puede ocurrir por varias razones. Tarjetas de memoria o cuellos de botella, bloquearon los registros o procedimientos problemáticos puede jugar todos una parte de los problemas de rendimiento de SQL. Mientras que la solución de la mayoría de los problemas de SQL Server requiere acceso de administrador de base de datos y el conocimiento, la localización de las consultas de problemas y la optimización tanto en el servidor de base de datos y evitará más problemas en el camino.

causas

Debido a que los tiempos de espera y los problemas de rendimiento pueden provenir de una variedad de causas, que tendrá que desarrollar una estrategia sistemática de solución de problemas con el fin de localizar y corregir un problema. Microsoft recomienda que comience la prueba mediante el uso de SQL, que registra las acciones de su servidor para que pueda aislar el problema. Para más detalles sobre la configuración de SQL para realizar un seguimiento, ver el enlace en Recursos. SQL Server 2012 también incluye una interfaz de usuario para los eventos extendidos Profiler, que tendrá por completo el lugar de SQL en versiones futuras.

El bloqueo

La mayoría de los problemas de espera se producen debido a los registros bloqueados. El bloqueo se produce cuando una conexión bloquea un registro que otra conexión debe bloquear el uso de un tipo de bloqueo diferente. El bloqueo es en realidad un comportamiento normal, pero puede causar ralentizaciones cuando las consultas de baja velocidad también se bloquean, un índice no se encuentra o en algunas otras circunstancias. Mientras que por defecto el servidor esperará indefinidamente para un registro bloqueado, los administradores a menudo utilizan el "LOCK_TIMEOUT" para evitar una ralentización del servidor. Para determinar si el servidor está teniendo problemas con el bloqueo, ejecute el siguiente procedimiento almacenado en el servidor tiene carga típica:

sp_who exec

Busque en la salida de las entradas que no sean 0 en la columna de "negro". Si es que existen, puede utilizar la salida del Analizador de SQL para concentrarse en las consultas de baja velocidad que pueden estar causando el bloqueo.

Plan de Ejecución del mal

Cuando el servidor se ejecuta una consulta, que utiliza los datos disponibles para optimizar la forma en que se ejecuta la consulta. De vez en cuando el servidor adivina mal, dando como resultado un plan de optimización mal. Si el mal plan se carga en la memoria caché, puede ejecutar una y otra vez, lo que frena cada consulta o significativamente el tiempo de espera. Utilizando los datos del Analizador de SQL o el Analizador de consultas SQL, puede localizar consultas y sintonizarlas de ejecución lenta para que se ejecuten con mayor rapidez.

Los cuellos de botella del sistema

El rendimiento del sistema también puede afectar al rendimiento de los tiempos de espera de SQL Server y la causa. Para determinar si su sistema está experimentando problemas de carga, Monitor de rendimiento correr y buscar el uso de CPU más alta de lo habitual o de las solicitudes de E / S más largos de lo habitual. Al igual que con los registros bloqueados, coincidiendo con el aumento de la carga con los datos del Analizador de SQL le ayudará a concentrarse en las consultas, compilaciones u otros procedimientos que toman grandes cantidades de recursos. Si el ajuste de los procedimientos no es posible, usted tiene que mejorar la memoria RAM del servidor, el rendimiento del procesamiento de energía o disco.