Oasis

martes, febrero 21, 2006

SQL Profiler: Recomendaciones para el Trace

Recomendaciones del libro que estoy leyendo ( “SQL Server Query Performance Tuning Distilled, Second Edition by Sajal Dam” ).
  1. Limitar el numero de eventos y columnas: Se utiliza la PRE y POST filtración, esto es importante ya que de lo contrario estaríamos utilizando muchos recursos. Prefiltrar es estar viendo al momento las actividades capturadas y postfiltrar es donde analizas lo capturado.
  2. Sacar los eventos Start. Nos dicen que no los necesitamos puesto que lo que queremos es ver resultados cuando se terminan de ejecutar los procesos, ahí es cuando tendremos resultados de la duración, costos, etc.
  3. Limitar el tamaño del rastreo: Se nos recomienda poner en propiedades la Duración y las lecturas > 2 ya que las menores no son muy optimizables.
  4. Evitar ordenamientos al momento de hacer el rastreo. Es preferible hacer este ordenamiento una vez que se termine de ejecutar el trace, lo que debemos de hacer es grabarlo y entonces si, aplicar los ordenamientos y agrupaciones que queramos.
  5. No Ejecutar el profiler remotamente. Nos dice que no esta bien ejecutar herramientas de pruebas en el servidor de producción, esto porque el profiler no corre por una sesión remota, y además porque los resultados los dejaría en un directorio del Server y no de nuestra PC.
  6. Capturar el rastreo utilizando Procedimientos Almacenados. Es recomendable hacer el rastreo con un procedimiento almacenado ya que es mas ligero. Lo malo de esto es que es tardado crear el script de este store procedure, porque se necesitan los siguientes comandos:
  • sp_trace_create: Creamos el rastreo.
  • sp_trace_setevent: Agregamos eventos y columnas.
  • sp_trace_setfilter: Aplicamos filtros.
  • sp_trace_setstatus: Iniciamos el rastreo.

    Para evitar hacer el script se nos recomienda lo siguiente:
  • Abrir el profiler
  • Conectarnos al servidor.
  • Abrir un templete ya existente o bien definir uno nuevo.
  • Correr el trace ( temporalmente )
  • Parar el trace.
  • Crear un SQL Script de este trace o rastreo.
  • Abrir este Script en el Query Analyzer.
  • Modificar el parámetro “InsertFileNameHere” del comando sp_trace_create
    Ejecutar el Script, con esto comercia el trace, nos dara un ID ( traceid ) que lo usas para detener el trace.

    Para detener el trace podemos ejecutar el siguiente codigo: EXEC sp_trace_setstatus 1, 0 despues de esto debemos de cerar y borrar el trace, esto se hace con el siguiente codigo:
    sp_trace_setstatus 1, 2