Si necesitas diagnosticar problemas de rendimiento, encontrar consultas conflictivas o simplemente quieras trazar las consultas que hace una aplicación contra la base de datos, seguramente estés acostumbrado a usar el SQL Server Profiler, la herramienta que principalmente hemos utilizado para realizar este tipo de diagnósticos sobre nuestras bases de datos y servidores. También es posible que te hayas decidido a dar el paso a Extended Events, pero esa es otra cuestión.
Si el Profiler es tu herramienta, muy seguramente la eches de menos en el caso de que el diagnóstico tengas que hacerlo sobre un SQL Server Express. La edición gratuita del motor de bases de datos relacionales de Microsoft no incluye esta aplicación. Es un contratiempo, pero hay alternativas. A continuación, os las presentamos:
ExpressProfiler es un ejecutable, gratuito, de código abierto, anteriormente conocido como SqlExpress Profiler. Presenta una interfaz muy sencilla en un ejecutable que solamente tendremos que descargar y ejecutar, sin instalaciones. Simplemente tendremos que darle al botón de play y monitorizar la traza para ver qué consultas se están ejecutando.
Existen en SQL Server una serie de características que pueden ser configuradas de manera temporal y dinámica, activando y desactivando lo que se conoce como trace flags o marcas de seguimiento, en castellano. Tal y como explica la MSDN, las marcas de seguimiento se suelen utilizar para diagnosticar problemas de rendimiento o para depurar procedimientos almacenados o sistemas complejos.
Pues bien, dos de ellas nos sirven para nuestro propósito, tal y como se explica en este artículo de CodeProject, escrito por BillyBoatGruff en febrero de 2012.
Activando la marca 4032, todas las consultas ejecutadas sobre SQL Server se trazan. El mecanismo habitual para activar una traza es mediante la instrucción DBCC TRACEON:
Sin embargo, si intentamos activar esta traza, obtendremos el siguiente mensaje:
Para poder ejecutar la instrucción, el servidor deberá estar detenido. Si no lo está, podemos pararlo desde la misma línea de comandos con la instrucción:
Una vez hecho esto, volcaremos las consultas al log de errores de SQL Server para que podamos consultarla, activando la traza 3605:
Con estas dos trazas activas, podremos revisar en el log de nuestro SQL Server todas las consultas realizadas sobre el servidor. El log permite realizar filtrados y exportar su listado a un fichero de texto, desde donde podremos copiar las consultas.
Hay que tener en cuenta que para poder utilizar este mecanismo, es necesario ser administrador tanto del servidor de bases de datos como del equipo en el que esté instalado.
Para deshabilitar las trazas, una vez hayamos acabado con las tareas de diagnóstico, ejecuta:
Si el Profiler es tu herramienta, muy seguramente la eches de menos en el caso de que el diagnóstico tengas que hacerlo sobre un SQL Server Express. La edición gratuita del motor de bases de datos relacionales de Microsoft no incluye esta aplicación. Es un contratiempo, pero hay alternativas. A continuación, os las presentamos:
ExpressProfiler
ExpressProfiler es un ejecutable, gratuito, de código abierto, anteriormente conocido como SqlExpress Profiler. Presenta una interfaz muy sencilla en un ejecutable que solamente tendremos que descargar y ejecutar, sin instalaciones. Simplemente tendremos que darle al botón de play y monitorizar la traza para ver qué consultas se están ejecutando.
El ExpressProfiler v2.0, en acción
Trace Flags o Marcas de Seguimiento
Existen en SQL Server una serie de características que pueden ser configuradas de manera temporal y dinámica, activando y desactivando lo que se conoce como trace flags o marcas de seguimiento, en castellano. Tal y como explica la MSDN, las marcas de seguimiento se suelen utilizar para diagnosticar problemas de rendimiento o para depurar procedimientos almacenados o sistemas complejos.
Pues bien, dos de ellas nos sirven para nuestro propósito, tal y como se explica en este artículo de CodeProject, escrito por BillyBoatGruff en febrero de 2012.
Activando la marca 4032, todas las consultas ejecutadas sobre SQL Server se trazan. El mecanismo habitual para activar una traza es mediante la instrucción DBCC TRACEON:
Sin embargo, si intentamos activar esta traza, obtendremos el siguiente mensaje:
"Se omitirá la marca de seguimiento 4032. Se trata de una marca de seguimiento no válida o que solo se puede especificar durante el inicio del servidor."Tal y como explica el mensaje, esta traza ha de especificarse durante el inicio del servidor. Para ello ejecutaremos la siguiente instrucción desde una línea de comandos que hayamos ejecutado como administrador:
Para poder ejecutar la instrucción, el servidor deberá estar detenido. Si no lo está, podemos pararlo desde la misma línea de comandos con la instrucción:
Una vez hecho esto, volcaremos las consultas al log de errores de SQL Server para que podamos consultarla, activando la traza 3605:
Con estas dos trazas activas, podremos revisar en el log de nuestro SQL Server todas las consultas realizadas sobre el servidor. El log permite realizar filtrados y exportar su listado a un fichero de texto, desde donde podremos copiar las consultas.
Hay que tener en cuenta que para poder utilizar este mecanismo, es necesario ser administrador tanto del servidor de bases de datos como del equipo en el que esté instalado.
Para deshabilitar las trazas, una vez hayamos acabado con las tareas de diagnóstico, ejecuta:
buena información
ResponderEliminarGracias, Samuel. Espero que sea útil.
Eliminarbuena información
ResponderEliminar¡Gracias por esta información!
ResponderEliminarPersonalmente, uso dbForge Event Profiler para SQL Server - https://www.devart.com/dbforge/sql/event-profiler/ para rastrear declaraciones, esta herramienta es completamente gratuita y está muy bien.
Gracias por el comentario, Alex.
Eliminar