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
3 respuestas
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
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
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
.
Nuevas preguntas
sql
El lenguaje de consulta estructurado (SQL) es un lenguaje para consultar bases de datos. Las preguntas deben incluir ejemplos de código, estructura de tabla, datos de muestra y una etiqueta para la implementación de DBMS (por ejemplo, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, etc.) que se utiliza. Si su pregunta se relaciona únicamente con un DBMS específico (usa extensiones / características específicas), use la etiqueta de ese DBMS en su lugar. Las respuestas a las preguntas etiquetadas con SQL deben usar SQL estándar ISO / IEC.