首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到具有进程ID、进程名、登录时间、用户、启动时间和持续时间的长时间运行查询?

如何找到具有进程ID、进程名、登录时间、用户、启动时间和持续时间的长时间运行查询?
EN

Database Administration用户
提问于 2014-05-30 12:23:29
回答 2查看 186K关注 0票数 29

有人能帮我找到下面给出的长期运行查询的详细信息吗?ProcessID、进程名称、数据库、主机、用户、进程登录时间、查询开始时间和查询持续时间。

我正在寻找一个查询或SP提供给我这个数据。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-05-30 14:17:16

正如评论所指出的,最好的工具是服务提供商_whoIsActive by 亚当·马查尼。它可以以多种方式使用,以查看启动脚本时运行的是什么,或者可以在循环中运行它以监视某些特定的操作,例如慢速查询。

要在循环中运行,请看这里:如何使用sp记录活动_活跃在循环中的以检测慢速查询:如何使用sp_查找慢速Server查询的WhoIsActive

您可以直接使用DMV获得最慢的查询并在那里执行操作。检查格伦·贝里的诊断查询

最后,您可以使用此查询查找最耗时的查询。您可以使用糖尿病组_exec_查询_统计数据添加更多数据,也可以加入其他数据以获取更多信息。请注意,每次服务器重新启动时,dmv都会被刷新和刷新。

代码语言:javascript
复制
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;

编辑

一个新的选项已经可以使用了,第一答卷包。是一组脚本,在麻省理工学院许可证下由BrentOzar团队免费提供,它将帮助执行各种任务,包括OP要求的任务。主要是本例的sp_BlitzFirst和sp_BlitzWho脚本。

票数 43
EN

Database Administration用户

发布于 2014-05-30 12:24:52

我强烈推荐服务提供商_高活性。这是一个第三方SP,但可以告诉你上面列出的一切,还有更多。这是一个难以置信的工具,在你的武器库。

票数 11
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/66249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档