Published on

October 14, 2018

Tratando problemas de rendimiento en SQL Server

Como administrador de bases de datos (DBA), a menudo nos encontramos enfrentando situaciones desafiantes cuando se trata del rendimiento de la base de datos. Recientemente, me encontré con una aplicación de producción que experimentaba problemas graves de rendimiento con una consulta en particular. En este artículo, compartiré los pasos que tomé para abordar el problema y proporcionaré información sobre las soluciones temporales que los DBA a veces tienen que implementar.

Tras la investigación, descubrí varios factores clave que contribuían al rendimiento lento:

  1. El plan de ejecución había cambiado varias veces en las últimas 12 horas, lo que indicaba un “parameter sniffing”.
  2. Había esperas significativas de CXpacket, lo que puede afectar el rendimiento.
  3. El tamaño de la tabla era grande, aunque no hubo un crecimiento repentino.
  4. La salud del índice era aceptable, gracias al mantenimiento regular semanal del índice.

Basado en estos hallazgos, decidí actualizar el plan de ejecución ejecutando el comando DBCC Freeplancache con el identificador de plan adecuado. Esto permitió que SQL Server generara un nuevo plan de ejecución, eliminando las esperas de CXpacket y restaurando el rendimiento óptimo.

Sin embargo, el problema volvió a surgir 18 horas después, con la misma aplicación y consulta. Esta vez, liberé el plan nuevamente y trabajé con el equipo de aplicación para introducir sugerencias de consulta para reducir las esperas de CXpacket. Específicamente, agregamos una sugerencia de maxdop para limitar el impacto en la CPU. Esta solución temporal resultó efectiva y la consulta no ha causado más problemas. El equipo de aplicación y yo estamos trabajando activamente en mejorar las consultas para eventualmente eliminar la sugerencia de maxdop.

El propósito de este artículo es resaltar la realidad de que los DBA a menudo tienen que tomar decisiones difíciles y encontrar soluciones temporales para abordar problemas de rendimiento. Si bien estas soluciones pueden no ser ideales, son necesarias para mantener el sistema funcionando sin problemas. Es importante que los DBA trabajen continuamente en mejoras y optimizaciones a largo plazo.

¡Gracias por leer este artículo! ¡Estén atentos para más consejos e información sobre SQL Server!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.