Estoy tratando de encontrar una manera (tal vez con sys DB) para recuperar información de todas las consultas ejecutadas por hora en las bases de datos de los usuarios. mi cliente quiere que le dé un informe diario a través de SSRS de la transacción por hora. Me encantaría escuchar sugerencias escaneadas en Internet sin suerte.

Editar: estoy tratando de entender de dónde obtener esta información, no sobre cómo filtrar los resultados por hora, gracias

1
winter_sql 23 ene. 2018 a las 15:39

3 respuestas

La mejor respuesta

Siempre puede echar un vistazo a las siguientes tablas:

master.sys.dm_exec_sessions
master.sys.dm_exec_connections
master.sys.dm_exec_sql_text
1
shawkins1 23 ene. 2018 a las 13:32

Terminé encontrando esto (con algunos pequeños cambios)

Gracias a todos por su ayuda, esto parece funcionar bien

create table #execution_count 
(time  datetime,
onhour int,
query nvarchar(max),
dbid int,
objectid int,
number int,
encrypted int,
text nvarchar(max)

)

insert into #execution_count 
SELECT deqs.last_execution_time AS [Time], (datepart(hour, deqs.last_execution_time)) as onhour, dest.text AS [Query], dest.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where deqs.last_execution_time > getdate()-1 --and cast(deqs.last_execution_time  as datetime) between '%19:00:00%' and '%2018-01-16 21:00:00%'
and dest.dbid not in(1,2,3,4)
ORDER BY deqs.last_execution_time DESC


select onhour, count(*) as total_executes_per_hour  from #execution_count 
group by onhour
having count(*)>0
drop table #execution_count 
1
winter_sql 23 ene. 2018 a las 14:58

Puede usar Perfmon contadores Transactions/sec y Batch Requests/sec o los mismos contadores del DMV sys.dm_os_performance_counters.

Puede leer más sobre el primer contador aquí: ransacciones / seg contador de rendimiento

Pero también vea este video: he El contador de transacciones / seg tiene grandes puntos ciegos porque es posible que deba optar por Batch Requests/sec.

0
sepupic 23 ene. 2018 a las 13:44
48401986