加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何查找包含进程ID,进程名称,登录时间,用户,开始

发布时间:2021-01-09 02:44:33 所属栏目:MsSql教程 来源:网络整理
导读:任何人都可以帮我找到长期运行查询的下面给出的详细信息. ProcessID,进程名称,数据库,主机,用户,进程登录时间,查询开始时间和查询持续时间. 我正在寻找一个查询或SP给我这个数据. 解决方法 正如评论所述,最好的工具是 sp_whoIsActive到 Adam Machanic.它可以

任何人都可以帮我找到长期运行查询的下面给出的详细信息.
ProcessID,进程名称,数据库,主机,用户,进程登录时间,查询开始时间和查询持续时间.

我正在寻找一个查询或SP给我这个数据.

解决方法

正如评论所述,最好的工具是 sp_whoIsActive到 Adam Machanic.它可以通过多种方式使用,以查看启动脚本时正在运行的内容,或者您??可以在循环中运行它来监视某些特定操作,例如缓慢查询.

要循环运行,请查看此处:How to Log Activity Using sp_whoisactive in a Loop
要检测慢查询:How to Use sp_WhoIsActive to Find Slow SQL Server Queries

您可以直接使用DMV来获取最慢的查询并从那里开始行动.检查Glenn Berry’s diagnostic queries.

最后,您可以使用此查询来查找最耗时的查询.您可以使用dm_exec_query_stats来添加更多数据或与其他数据连接以获取更多信息.请注意,每次重新启动服务器时,dmv都会被刷新并刷新.

SELECT  creation_time,last_execution_time,total_physical_reads,total_logical_reads,total_logical_writes,execution_count,total_worker_time,total_elapsed_time,total_elapsed_time / execution_count avg_elapsed_time,SUBSTRING(st.text,(qs.statement_start_offset/2) + 1,((CASE statement_end_offset
          WHEN -1 THEN DATALENGTH(st.text)
          ELSE qs.statement_end_offset END
            - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;

编辑

新的选项已经有一段时间了,First Reponder Kit.是一组脚本,由BrentOzar团队在MIT license下免费提供,这将有助于各种任务,包括OP提出的任务.对于这种情况,主要是sp_BlitzFirst和sp_BlitzWho脚本.

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读