Published on

May 31, 2009

Accediendo a los contadores de rendimiento de SQL Server

En la era digital de hoy en día, mantenerse actualizado con las últimas tendencias tecnológicas es crucial. Las plataformas de redes sociales como Twitter se han vuelto inmensamente populares, conectando a personas de todos los ámbitos de la vida. Fue a través de Twitter que tuve el placer de conocer a Kevin Mckenna, un experto en SQL y .NET. Kevin compartió algunos conocimientos valiosos sobre cómo acceder a los contadores de rendimiento desde las vistas del sistema en SQL Server, y con su permiso, estoy compartiendo esta información contigo.

Muchas personas desconocen que SQL Server proporciona un acceso fácil a la información de rendimiento sin necesidad de aplicaciones personalizadas o perfmon. La clave para acceder a esta información se encuentra en la vista del sistema llamada sys.dm_os_performance_counters. Esta vista te permite recuperar información de los contadores de rendimiento de SQL Server que normalmente se ven a través de perfmon.

Comencemos con un ejemplo sencillo:

SELECT * FROM sys.dm_os_performance_counters

Esta consulta devolverá una lista de información de los contadores de rendimiento, incluyendo datos del Administrador de búferes, Partición de búferes, Nodo de búferes, Estadísticas generales, Bloqueos y más. Es una vista integral que proporciona información valiosa sobre el rendimiento de tu SQL Server.

Para obtener una vista más enfocada, concentrémonos en el Administrador de búferes:

SELECT * FROM sys.dm_os_performance_counters WHERE OBJECT_NAME = 'SQLServer:Buffer Manager'

Esta consulta mostrará información específica de los contadores de rendimiento relacionados con el Administrador de búferes. Las columnas devueltas incluyen object_name, counter_name, instance_name, cntr_value y cntr_type. Estas columnas proporcionan información valiosa sobre el rendimiento de tu SQL Server.

Ahora que tenemos acceso a esta información, ¿qué podemos hacer con ella? Una opción es crear un trabajo que muestre un valor específico en intervalos de tiempo y lo almacene en una tabla. Esto te permite ver valores promedio y seguir tendencias a lo largo del tiempo. Por ejemplo, podrías graficar el número de transacciones activas durante el día de trabajo almacenando los valores en una tabla y consultándolos más tarde.

Aquí tienes un ejemplo de cómo puedes almacenar los valores en una tabla:

CREATE TABLE ActiveTrans_sqlGenus (
  obj_name NCHAR(128),
  counter_name NCHAR(128),
  instance_name NCHAR(128),
  cntr_value BIGINT,
  cntr_type INT,
  datestamp DATETIME
)

INSERT INTO ActiveTrans_sqlGenus
SELECT OBJECT_NAME, counter_name, instance_name, cntr_value, cntr_type, GETDATE()
FROM sys.dm_os_performance_counters
WHERE OBJECT_NAME = 'SQLServer:Databases'
  AND counter_name = 'Active Transactions'
  AND instance_name = 'sqlGenus'

Suponiendo que estás insertando valores de manera constante en esta tabla, luego puedes recuperar las entradas para un rango de tiempo específico:

SELECT * FROM ActiveTrans_sqlGenus
WHERE datestamp BETWEEN '06/02/2009 09:00' AND '06/02/2009 17:00'

Esta consulta devolverá todas las entradas entre las 9am y las 5pm, lo que te permitirá analizar el rendimiento de tu SQL Server durante ese período de tiempo.

Aunque este es un ejemplo sencillo, demuestra el poder de acceder a los contadores de rendimiento de SQL Server a través de las vistas del sistema. Manipulando y analizando estos datos, puedes obtener información valiosa sobre la salud y el rendimiento de tu base de datos.

Es importante tener en cuenta que las vistas del sistema de SQL Server solo proporcionan información específica de SQL Server en sí. La información relacionada con el rendimiento de procesadores, red y disco aún debe obtenerse a través de contadores de rendimiento. Sin embargo, la vista sys.dm_os_performance_counters proporciona información más que suficiente para mantener tu base de datos en excelente estado.

Si estás interesado en aprender más sobre la vista sys.dm_os_performance_counters, puedes encontrar información adicional en el sitio web de MSDN.

¡Mantente atento para más consejos y trucos de SQL Server!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.