SQL Profiler y SQL Trace

Existen dos enfoques principales para obtener visibilidad sobre la operación interna de SQL Server: Desde el cliente o desde el servidor. La herramienta SQL Server Profiler ofrece una interface gráfica que funciona a nivel cliente y te permite capturar los distintos eventos que ocurren durante la operación del motor. La principal desventaja en el uso de esta herramienta es que existe la posibilidad de perder eventos (es decir que no sean registrados) y además que, dependiendo de la carga del servidor, la transmission de la información de rastreo impacte negativamente el desempeño del motor.

SQL Server Profiler puede accesarse desde el folder “Peformance Tools” que se encuentra dentro del grupo de programas llamado SQL Server o bien seleccionando un proceso desde el panel de procesos de SSMS (SQL Server Management Studio), presionando el botón derecho del mouse (o ratón) y seleccionando la opción de menú “Trace Process in SQL Server Profiler”.

Por otro lado, SQL Trace corre a nivel servidor y se activa utilizando procedimientos almacenados por lo tanto no ofrece una interface tan amigable como la de SQL Server Profiler. Sin embargo, una de las ventajas principales de usar rastreo a nivel servidor es que no existe la posibilidad perder eventos debido cargas de trabajo altas, aunque ésta ventaja pudiera convertirse en desventaja ya que con el fin de asegurarse que todos los eventos sean registrados, SQL Server regulará el despeño del servidor en función de la rapidez con la que sea capaz de registrar la información de rastreo. Dicho de otra forma, los rastreos a nivel servidor pueden impactar negativamente el desempeño del motor en aras de capturar y registrar todos los eventos.

Afortunadamente, SQL Profiler ofrece la opción de generar definiciones de rastreo en forma de scripts para después usarse desde SQL Trace. Esta forma de trabajo nos evita tener que escribir los commandos manualmente y al mismo tiempo nos habilita para sacar partida de todas las ventajas ofrecidas por la opción de rastreo a nivel servidor o SQL Trace, ofreciendo lo mejor de ambos mundos.

This entry was posted in Funcionamiento. Bookmark the permalink.

Comments are closed.