SQL Server-DMV 初探

进来不断的进行数据的清除和整理,结果一个过程花费了48个小时还没有结果。按照我们任务的规模,通常可以在几个小时内完成。

考察了内存 CPU负载都不高。问题究竟在哪里呢?

决定考察下动态管理视图,首先看了sys.dm_od_tasks。

使用sessionid做过滤,看到了9个task,检查了下文档明白了,因为机器上有8个CPU,外加一个协调的task。

在这个视图里,还看到所有的task都处于suspended状态,显然所有任务都被阻塞了。

 

那么她们都在等待什么呢?

于是我查了下sys.dm_os_waiting_tasks视图。它可以告诉我所有等待中的task在干什么。还是以session_id为filter。

看到协调进程的等待类型是PAGEIOLATCH_EX,资源描述是16:1:8094245,说在等着给某个page加锁,并把它独到内存中。

而其他的8个task均被该task所阻塞。

 

联系我们的sql是在做update操作,到此,我们已经清楚了,协调进程首先给页面加锁,读取到内存中,其他的工作task才能进行update操作。因此所有的花费均在update之上。

看来我们需要检查下是否需要这样的update了。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值