当 DBA 工具在 SQL Server 生产数据库上连接“时间过长”时,我正在寻找一种发送警报的方法。
对于我列出的大多数工具,我可以通过以下查询找到程序名称。
select
login_time,
host_name,
program_name,
login_name,
nt_domain,
nt_user_name,
last_request_start_time
From sys.dm_exec_sessions
where host_name is not null
但是,即使活动监视器工具正在运行,我也找不到它。我使用 SQL Server 2012 Management Studio 并针对 SQL Server 2012 实例运行它。
你知道我看不到它的原因吗?活动监视器是否通过“连接/断开连接”来显示其内容?
如果是这样的话,那是绝对正常的,我在那里找不到它,我将不得不改变我的方式来用扩展事件或登录触发器来检查它……
活动监视器显示为标准用户会话,在 tempdb(通常为 database_id = 2)中“休眠”,program_name 为“Microsoft SQL Server Management Studio”。
它仅以其刷新窗口的速率查询,但这些标识符加上 total_elapsed_time 应该可以找到您的空闲监视器。