2011-02-16 13 views

Respuesta

12
DECLARE @cntr_value bigint 

SELECT @cntr_value = cntr_value 
    FROM sys.dm_os_performance_counters 
    WHERE counter_name = 'transactions/sec' 
     AND object_name = 'SQLServer:Databases' 
     AND instance_name = 'YourDatabase' 

WAITFOR DELAY '00:00:01' 

SELECT cntr_value - @cntr_value 
    FROM sys.dm_os_performance_counters 
    WHERE counter_name = 'transactions/sec' 
     AND object_name = 'SQLServer:Databases' 
     AND instance_name = 'YourDatabase' 
+0

Cuando ejecuto esto obtengo un valor de 426836. ¿Es eso las transacciones por segundo? Parece bastante alto. – izip

+0

@izip: el valor de los contadores "por segundo" es acumulativo. Debería tomar la diferencia de dos valores para un intervalo de tiempo fijo para obtener el número de transacciones para ese intervalo de tiempo. Actualizaré mi respuesta. –

+0

¡Gracias, que volvió como 10, lo que parece más razonable! – izip

0

Los procedimientos sp_BlitzFirst encuentran en https://www.brentozar.com/askbrent/ devuelve esta información a nivel de base de datos, junto con una gran cantidad de otra gran información. Una simple llamada como la siguiente le mostrará lo que sucede en el transcurso de 5 segundos.

EXEC dbo.sp_BlitzFirst @ExpertMode = 1, @seconds = 5; 
Cuestiones relacionadas