如何在SQL Server 2016+中使用Query Store查找哪个程序或用户执行查询

时间:2018-04-05 10:02:46

标签: sql-server performance monitoring sql-server-2016 sql-query-store

启用查询存储后,如何查找执行查询的人员。 例如,在跟踪收集的情况下,有TRC文件将获取查询的主机名和程序详细信息,在扩展事件的情况下,我们有XEL文件,它将获取主机名和程序详细信息。 我们尝试了代码

SELECT des.program_name,
des.host_name,
*
FROM sys.query_store_query_text qt -- Query Text
JOIN sys.query_store_query q ON qt.query_text_id = q.query_id -- Query Data
JOIN sys.query_store_plan qp on qp.query_id = q.query_id --  Query Plan
join sys.dm_exec_requests der on der.query_hash = q.query_hash -- Get session id for query
join sys.dm_exec_sessions des on des.session_id = der.session_id -- Session Info
order by q.last_execution_time desc

DMV下面返回Query Hash(query_hash)的空值,因此没有上述查询的数据

select * from sys.dm_exec_requests der
select * from sys.dm_exec_sessions des

0 个答案:

没有答案