启用查询存储后,如何查找执行查询的人。例如,在跟踪收集的情况下,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
Run Code Online (Sandbox Code Playgroud)
下面的 DMV 返回查询哈希 (query_hash) 的空值,因此上面的查询没有数据
select * from sys.dm_exec_requests der
select * from sys.dm_exec_sessions des
Run Code Online (Sandbox Code Playgroud) sql-server performance monitoring sql-server-2016 sql-query-store
我的数据库中有三个表。产品表、类型表和名为 Prod_Type 的映射表。我的数据库是sql server,这就是为什么我不能使用group_concat函数而我正在使用Stuff函数。我的表结构如下
产品表
Prod_ID | Name | Brand
------- ---- -----
1 | Name1 | Brand1
2 | Name2 | Brand2
3 | Name3 | Brand3
4 | Name4 | Brand4
5 | Name5 | Brand5
6 | Name6 | Brand6
7 | Name7 | Brand7
Run Code Online (Sandbox Code Playgroud)
类型表
Type_ID | TypeName
------- --------
1 | TypeName1
2 | TypeName2
3 | TypeName3
4 | TypeName4
5 | TypeName5
Run Code Online (Sandbox Code Playgroud)
产品类型表
Prod_IDM | Type_ID
-------- -------
1 | 1
1 | …Run Code Online (Sandbox Code Playgroud)