我的生产SQL Server2008 R2从凌晨4:00停机到凌晨5:00
我使用grafana检查了SQL Server性能,发现阻塞发生在凌晨4:00到5:00之间
它在凌晨5点之后运行正常。我检查了正在运行的作业,备份了运行overnight.But的所有内容所有这些都发生在凌晨4点之前
我创建了一个要运行的SQL Server事件探查器跟踪作业,但它正在创建多个跟踪文件,如果我这样做了,它将关闭生产服务器。
在SQL Server2008 R2中,我找不到正在管理的扩展事件。我如何知道在凌晨4点到5点之间发生了什么?
发布于 2017-09-30 17:56:29
我如何知道在凌晨4点到5点之间发生了什么?
sql事件阻塞进程在2008中不可用R2..so您可以创建一些如下所示的自定义脚本,并通过sql代理每5分钟运行一次,然后插入到某个表中。
select rq.session_id,rq.status,rq.command,rq.wait_type,rq.last_wait_type,rq.wait_time,rq.wait_resource,
rq.blocking_session_id,
blocked.text as 'blocked',
blocking.text as 'blockedby'
from
sys.dm_exec_requests rq
join
sys.dm_exec_connections cn
on cn.session_id=rq.blocking_session_id
cross apply
sys.dm_exec_sql_text(rq.sql_handle) blocked
cross apply
sys.dm_exec_sql_text(cn.most_recent_sql_handle) blocking
参考:
http://www.chilledsql.com/welcome/tip_category_dmvqueries/tip_detail_dmvqueries_getblockingprocesses
https://stackoverflow.com/questions/46504611
复制