usas SQL Profiler?

Básico, en un ambiente de desarrollo y parece que en mantenimiento también. Siempre ante cualquier marcianada que suceda en la aplicación, como por ejemplo, que has hecho una paginación optimizada, pero no se muestra data :S. En esos casos, mi última opción es depurar la aplicación. La primera opción es sacarla al "ojo" :D, al muy estilo de algunos retos de programancia101.

Si tienes una solución con unos cuantos proyectos, no cuesta nada depurar. Pero si tienes una solución un poco más compleja en capas, y con varios módulos. La opción de depuración se pone un poco más pesadita. Imagina que ya terminaste de hacer todas tus capas de componentes, y terminaste la capa final de presentación, pero por cuestiones del destino tu GridView con paginación optimizada no funciona. Entonces te echas a depurar esperas que compile, que cargue el navegador, empiezas a depurar, y aunque uses el QuickWatch de Visual Studio, tienes que irte hasta la última capa, para darte cuenta que te faltaba un parámetro, que hiciste mal una conversión, que un dato iba un null, y todo lo que normalmente pasa, si no, que levanten la mano los que han depurado y se encontraron que por copiar procesos, se olvidaron de cambiar el nombre del SPs, hasta el copy/paste hay que saberlo hacer :).

Pero como hacemos para aproximarnos a una depuración al "ojo"?. En un anterior proyecto en 3Dev, me inculcaron el uso de SQL Profiler, y bueno actualmente es imposible dejar de usarlo. Sobretodo si quieres ahorrarte tiempo y esfuerzo para ubicar el problema. Pero, que se puede hacer con SQL Profiler?, en cuanto a cosas básicas para depurar:

  • Ver si se ejecuto o no la llamada a un StoreProcedure.
  • Ver los valores de los parámetros de un StoreProcedure.
  • Verificar la consulta generada en el Management Studio.
  • Ver las llamadas que hace tu app al SQL.
  • Y otras cosas más.

Algunas pantallazos:

En la pantalla superior podemos apreciar que efectivamente, se llegaron a realizar las llamadas a los SPs, y no se quedo en la aplicación. También podemos apreciar cada llamada que ha tenido nuestro servidor de SQL, ya sea un SP o una consulta T-SQL, además de los parámetros enviados.

A diferencia de la pantalla de arriba, acá podemos ver una paginación optimizada, y también podemos comparar las duración de cada consulta. También podemos copiar el código generado, ejecutarlo y verificar el porque del problema.

Otro punto a tener en cuenta es, si bien en un ambiente de desarrollo podemos usar Visual Studio 2005 para depurar, que pasa en un ambiente de pruebas, donde sólo tenemos SQL y IIS?, y sobre todo más cuando sabes que en el server de prueba, es cuando recién aparecen los problemas :D.

Además de las ventajas que le puede dar al desarrollador, hay otras fumadas que se pueden hacer con SQL Profiler:

P.D.: Traten de que la depuración con Visual Studio sea la última opción, sobre todo para soluciones con proyectos grandes, para mi es una tarea fastidiosa, aunque a veces necesaria, pero se puede evitar con herramientas como esta. Sólo es cuestión de acostumbrarse, verán que algún momento ante una pantalla no esperada, lo primero que harán será ir al profiler, en lugar depurar la aplicación :). Y bueno no te ahorras "el tiempo" que gastarías en depuración, pero esto sumado a otras cosas más, como adquirir mejores máquinas, aumentar la concentración, puede sumar y disminuir unos días de ineficiencia, sobre todo en un mes crítico como este, bueno para mi :D. Por cierto, debido a estro parece que sólo estare posteando los fines de semana :), hay mucha información que compartir y algunos anéctodas, del trabajo que contar, pero trato de tener los títulos anotados, así que algún día los contare :).

Saludos, desde Lima, con mucho frío por cierto.


Post cruzado 3Dev Blogs
Published 7/7/2007 3:28 por Sergio Tarrillo
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2007/07/07/19011.aspx

Comentarios

# re: usas SQL Profiler?

Claro Espinete!, hay una anéctoda guardado llamado: "cuando los usuarios se quieren burlar de ti".

Saludos,

Tuesday, July 10, 2007 7:02 AM por Sergio Tarrillo

# re: usas SQL Profiler?

Hola Sergio! Excelente articulo, me encanta por lo sencillo y por lo directo..o conciso que es..whatever! Lo importante es que el mensaje llega, en especial para aquellas personas principiantes en el desarrollo de un proyecto de software que nunca han usado el Profiler o lo veian como una herramienta extraña...Yo creo que Asusta de lo UTIL que es....pero es super esencial cuando estamos en estas labores! Me hizo recordar varias anecdotas, y la mas comun es una que me pasa siempre, como consultor o desarrolador, cuando alguien me pregunta algo (como quien sabe...como si uno fuera un mesias...o que esta clarisimo con todas las lineas de codigo que solo ellos y Dios saben que escribieron..!!) cual es el error?? o que esta pasando??? Solo les digo: "Montaste una traza??" y solo alcanzo a ver que la parte negra del ojo desaparece totalmente, eso con que se come?? Supongo que pasa por su mente...Y es esencial y basico, a partir de alli...ya me preguntan cuando tienen la traza montada...Jajjaaj!  Es una herramienta excelente y cuando la empece a usar mas nunca me deshice de ella, me ayuda no solo a depurar errores en mi aplicacion, tambien a reportar los bugs en las aplicaciones de otros, a saber que o como pasa tal o cual cosa, hasta a descubrir los malos programadores (ojo, y me incluyo!). Es un chismosito muy util!!De verdad que si!!

Saludos y seguro voy a leer tus articulos con mas frecuencia!

Bye,

Mary

Saturday, July 14, 2007 10:00 PM por Mary Arcia

# Primera tarea con la VPC Orcas Beta 2 (instalar SQL :D)

[04:00 a.m. (-05:00)] Parece que mañana llegaré tarde a la oficina, una raya más al tigre , así que mejor

Wednesday, August 15, 2007 11:21 AM por SergioTarrillo's RichWeblog

# re: usas SQL Profiler?

Hola buenas,

Tengo un problemilla con el SQL profiler:

-Resulta que tengo que analizar los accesos a ciertas tablas de usuario en un servidor SQL.

La cosa es que yo audito el suceso audit login (dentro de la clase de suceso Auditoria de seguridad) y en las columnas de datos selecciono DatabaseName, ObjectType, DBUserName, Event Class y SPID.

Pues bien solo consigo registrar datos en las columnas SPID y Event Class ya que DatabaseName, ObjectType y DBUserName salen siempre en blanco. He probado a añadir y quitar columnas de datos pero estas tres siempre me salen en blanco, debo estar haciendo algo mal.

Alguien puede ayudarme???

Muchas gracias por adelantado!!!  

Monday, April 14, 2008 1:19 PM por Unai

# re: usas SQL Profiler?

Tengo la cpu de mi servidor de base de datos al 100% varias veces durante el día.

Los que nos vendieron el software se hacen los desentendidos. Como puedo testear que proceso es el que esta pegando mi servidor???

Me sirve SQL Profiler?? O alguna otra herramienta recomendada.

Tuesday, September 2, 2008 9:33 PM por NNC

# re: usas SQL Profiler?

Tocayo: Felicidades por tan excelente blog, y por supuesto este artículo es muy útil e informativo...

Saludos desde México.

P.d.: NNC: busca las herramientas de sysinternals para tu problema de cpu al 100%.

Saturday, September 6, 2008 9:53 PM por SergioE.

# re: usas SQL Profiler?

@Mary, gracias por compartir tus experiencias.

@Unai, se puede usar DatabaseID, revisa este hilo: www.microsoft.com/.../default.aspx

@NNC: Lo más simple, el task manager.

@SergioE, gracias y un saludo!

Saludos,

Monday, December 22, 2008 9:48 PM por Sergio Tarrillo

# Medir rendimiento aplicacion ASP.NET y base de Datos | hilpers

PingBack desde  Medir rendimiento aplicacion ASP.NET y base de Datos | hilpers

# re: usas SQL Profiler?

Sergio, estoy usando la version Sql Server 2008 Express ADV, es posible instalar el sql profiler para esta  version y como puedo hacer esto???

gracias

Monday, February 23, 2009 3:16 AM por Ricardo

# re: usas SQL Profiler?

para prueba

Tuesday, September 28, 2010 4:55 AM por wilmer