Published on

December 22, 2018

Comprendiendo el cortocircuito en los Eventos Extendidos de SQL Server

Cuando se trata de rastrear y solucionar problemas en SQL Server, a menudo queremos minimizar el impacto en el rendimiento del sistema. Una forma de lograr esto es a través del uso de Eventos Extendidos (XE). XE proporciona un método ligero para el rastreo, lo que nos permite poner carga en el sistema sin causar requisitos significativos de recursos.

Pero, ¿cómo logra XE esto? La respuesta se encuentra en un concepto llamado cortocircuito. En términos simples, el cortocircuito es la capacidad de XE para evaluar rápidamente las condiciones del evento y detener el procesamiento si una condición falla. Esto puede mejorar considerablemente el rendimiento y evitar el consumo innecesario de recursos.

Imagina que estás corriendo un maratón y te encuentras con un atajo en el recorrido. Tomar este atajo te ahorraría tiempo y esfuerzo, pero también estaría en contra de las reglas. De manera similar, en la electricidad, un cortocircuito ocurre cuando la corriente toma un camino no intencionado de menor resistencia. Si bien esto puede ser peligroso en los sistemas eléctricos, en el contexto de XE, el cortocircuito es un resultado deseable.

El cortocircuito en XE se logra a través del uso de restricciones lógicas y predicados. Cada evento en una sesión de XE tiene un predicado, que es un conjunto de condiciones que deben cumplirse para capturar el evento. Cuando se dispara un evento y es recogido por la sesión de XE, la sesión compara la carga del evento con las condiciones en el predicado. Procesa cada condición en orden hasta que una condición no cumple la comparación. En este punto, se invoca el cortocircuito y la evaluación termina. No se realiza ningún procesamiento adicional para ese evento.

Entonces, ¿cómo determinamos el orden de los predicados en una sesión de XE? La regla general es colocar el predicado menos probable de tener éxito primero. Esto significa que si una condición es poco probable que se cumpla, debe evaluarse primero. Al hacerlo, potencialmente podemos evitar evaluar las condiciones restantes, ahorrando tiempo de procesamiento y recursos.

Consideremos un ejemplo en el que queremos rastrear declaraciones que excedan una cierta duración en una base de datos específica. Si tenemos un servidor con 100 bases de datos y 99 de ellas tienen frecuentemente consultas que exceden el umbral de duración, tendría sentido colocar la condición del nombre de la base de datos primero en el predicado. Sin embargo, si solo tenemos 4 bases de datos y las consultas que exceden el umbral de duración ocurren muy raramente, sería más eficiente colocar la condición de duración primero.

Es importante tener en cuenta que el orden específico de los predicados puede variar según el entorno y las condiciones específicas que se estén evaluando. Siempre es una buena práctica analizar su escenario específico y determinar el orden más apropiado para sus predicados.

Al comprender y utilizar el cortocircuito en XE, podemos crear predicados bien diseñados que conduzcan a trazas altamente ajustadas y eficientes. Esto no solo mejora nuestra capacidad para solucionar problemas y diagnosticar problemas, sino que también minimiza el impacto en el rendimiento del sistema.

Entonces, la próxima vez que esté configurando una sesión de XE, recuerde dar prioridad al predicado menos probable de tener éxito primero y permita que las capacidades de cortocircuito de XE trabajen a su favor.

Para obtener información más detallada sobre Eventos Extendidos y cómo utilizarlos de manera efectiva, consulte nuestra serie de artículos diseñados para ayudarlo a aprender XE poco a poco. Y si está interesado en comparar el poder de XE con Profiler, asegúrese de consultar también nuestro artículo sobre ese tema.

Gracias por leer el undécimo artículo de nuestra serie “12 días de Navidad” de 2018. Para ver una lista completa de los artículos, visite nuestro sitio web.

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.