SQL Server Profiler 2008 es una herramienta de monitorización muy versátil y gratuita que nos va a permitir identificar y cuantificar problemas en nuestras instancias de SQL Server 2008.

Por este motivo este tutorial se va a dividir en varios artículos. En estos post se trataran los siguientes temas:

  • Administrar trazas, crear, modificar, guardar
  • Gestionar Templates (plantillas)
  • Integrar trazas de SQL Server Profiler con Performance Monitor
  • Reproducir trazas

SQL Profiler

Definición

Microsoft SQL Server Profiler es un interfaz gráfico de usuario para SQL Trace que permite la monitorización de una instancia de SQL Database Engine o Analysis Services.

Dependiendo de la naturaleza de los datos que extraigamos con SQL Profiler podremos cuantificar o identificar hot spot (problemas) en nuestro código Transact SQL o en nuestras instancias de SQL Server 2008.

El hecho de que SQL Server Profiler sea capaz de cuantificar no quiere decir que con recoger los datos y ordenarlos basta para saber que consultas ofrecen peor rendimiento en cuanto a CPU, duración, lecturas o escrituras.

Esto se debe a que puedes tener una consulta que realiza 500 lecturas que se ejecuta 10000 veces y otra que realiza 5000 lecturas y se ejecuta 1 vez. Haciendo una ordenación simple el resultado nos diría que el problema está en la consulta que realiza 5000 lecturas cuando en realidad nuestro problema es la que realiza 500.

SQL Server Profiler no está disponible para todas las versiones de SQL Server.

Cuando Utilizarlo

Es aconsejable medir el rendimiento antes y después de los siguientes cambios:

  • Cambios de versiones de SQL Server
  • Al aplicar services packs
  • Ante cambios de hardware.
  • Cambios de sistema operativo.
  • Ante grandes incrementos de datos en las bases de datos.
  • Tuning de índices
  • Para establecer líneas base de comportamiento
  • Permite la comparación de la misma carga de trabajo entre varios servidores

Terminología de SQL Profiler

A continuación pasamos a comentar el léxico relacionado con SQL Server Profiler.

Events (Eventos)

Un evento es una acción que ha ocurrido dentro de una instancia de SQL Database Engine o Analysis Services.

Los eventos están organizados en tres agrupaciones:

Tutorial SQL Profiler 2008 (I)

Donde:

  • Event Categories es una agrupación de Event Classes relacionadas. A un grupo se le denomina Event Category
  • Event Classes son los eventos propiamente dichos
  • Event SubClasses son especializaciones de eventos, se muestran como columna (EventSubClass), no son seleccionables.

Un ejemplo puede ser el siguiente:

  • Event Category “Events and Warnings”
  • Event Classes “Hash Warnings”
  • Event SubClasses “Recursion”

La selección de eventos nos permite indicar a SQL Profiler que acciones queremos almacenar, esta selección se realiza en en la pestaña “Events Selection” tal y como veremos más adelante en este artículo.

Los eventos de las instancias de SQL Database Engine o Analysis Services son distintos como se puede ver en las siguientes imágenes:

  • Estas son categorías de eventos de SQL Database Engine:

Tutorial SQL Profiler 2008 (I)

Algunos eventos importantes dentro de estas categorías son:

  • En la categoría Errors and Warnings los eventos Hash Warning, Sort Warning y User Error Message.
  • En la categoría Database los eventos Data File Auto Grow/Shrink, Log File Auto Grow/Shrink
  • En la categoría Stored Procedures el evento RPC:Completed
  • En la categoría TSQL los eventos SQL:BatchCompleted, SQL:BatchStarting, SQL:StmtCompleted y SQL:StmtStarting.
  • Estas son categorías de eventos de Analysis Services:

Tutorial SQL Profiler 2008 (I)

Algunos eventos importantes dentro de estas categorías son:

  • En la categoría Command Events los eventos
    Command begin/end
  • En la categoría Errors and Warnings el evento Error
  • En la categoría Progress Reports los eventos Progress Report Begin/End
  • En la categoría Queries Events los eventos Query Begin/End
  • En la categoría Query Processing los eventos Get data from Aggregation y Query Subcube Verbose

Columns (Columnas)

Las columnas son atributos de las clases que son capturadas en la traza. Debido a que son los eventos quienes determinan las columnas de datos que pueden ser capturadas, no todas las columnas son aplicables a todos los eventos.

Las columnas que con más frecuencia utilizamos son:

  • TextData
  • ApplicationName
  • NTUserName
  • CPU
  • Duration
  • Reads
  • Writes
  • DatabaseName
  • SPID
  • StartTime
  • EndTime.

Filters (Filtros)

Los filtros permiten definir criterios para reducir el conjunto de datos a recolectar. Cada filtro se aplica sobre una columna. Dependiendo del tipo de datos de una columna nos encontraremos con distintos operadores de comparación. Concretamente en el caso de las columnas de texto los operadores “like” y “not like” se puede utilizar el símbolo “%” para indicar cualquier valor. Se pueden componer filtros compuestos si se establecen varios filtros. En los campos fecha se puede utilizar el formato YYYY/MM/DD HH:mm:sec o el formato establecido en la configuración regional.

Traces (Trazas)

Es un conjunto de datos estructurado en eventos, columnas y filtros que se almacena bien en un fichero o en una tabla.

Templates (Plantillas)

Una plantilla define la configuración por defecto para una traza. Los template son personalizables y permiten incluir los eventos que se quieren monitorizar así como las columnas y filtros. Una vez almacenados y siempre que queramos crear una nueva traza aparecerán en la lista “Use the Template”.

Tutorial SQL Profiler 2008 (I)

Algunos de los templates más importantes en SQL Server Profiler 2008 son:

  • SP_Counts. Cuenta el número de procedimientos almacenados que han estado corriendo
  • Standard. Sirve para monitorizar la información general
  • TSQL.Sirve para hacer debug de aplicaciones clientes
  • TSQL_Duration. Se utiliza para identificar consultas lentas
  • TSQL_Grouped. Se utiliza cuando se quiere investigar queries para determinados usuarios
  • TSQL_Locks. Se utiliza para monitorizar bloqueos.
  • TSQL_Replay. Esta traza captura eventos que permite reproducir a posteriori la carga de trabajo

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada.

You May Also Like
Leer más

Hilando fino en SSAS multidimensional

El equipo de SolidQ ha estado buscando la mejor manera de implementar una jerarquía padre-hijo de cuentas contables con un operador unitario que tuviera un buen rendimiento, a pesar de la gran cantidad de datos a la que tenía que enfrentarse. Veremos cómo aplanar la jerarquía, cómo implementarlo con SSAS, con una alternativa MDX, cómo añadir ordenación a las cuentas basadas en otro atributo, Time Balance Average y algún otro truco de tuning.