Tenemos un servidor SQL 2000 que tiene trabajos muy variados que se ejecutan en diferentes momentos del día o incluso diferentes días del mes. Normalmente, solo usamos el generador de perfiles SQL para ejecutar trazas durante períodos de tiempo muy cortos para la resolución de problemas de rendimiento, pero en este caso, eso realmente no me daría una buena idea general de los tipos de consultas que se ejecutan contra la base de datos en el curso de un día o semana o mes.Reducción de la sobrecarga de un seguimiento SQL con filtros
¿Cómo puedo minimizar la sobrecarga de rendimiento de una traza de SQL de larga ejecución? Ya sé que:
- Ejecute el seguimiento del lado del servidor (sp_ create_trace), en lugar de usar la interfaz de usuario del Analizador de SQL.
- Rastrear en un archivo, y no en una tabla de base de datos (lo que agregaría una sobrecarga adicional al servidor de BD).
Mi pregunta es acerca de los filtros. Si agrego un filtro solo a las consultas de registro que se ejecutan durante más de cierta duración o que se lee, todavía tiene que examinar toda la actividad en el servidor para decidir si necesita iniciar sesión, ¿no? Entonces, incluso con ese filtro, ¿el seguimiento va a crear un nivel inaceptable de sobrecarga para un servidor que ya se encuentra al borde de un rendimiento inaceptable?
Debe editar su respuesta para incluir un resumen de los hallazgos de esa publicación: la ejecución de un rastreo del lado del servidor (que registra sus datos en un archivo en un disco separado del disco donde están ubicados los archivos DB de SQL Server) no tiene mucho impacto en el rendimiento del servidor, pero [como se indica en los comentarios] el uso de más de 7 u 8 filtros para un único evento de seguimiento * puede * tener un impacto negativo. –