相关疑难解决方法(0)

识别阻塞并发送警报

我需要创建一个警报,当任何查询被阻止超过 60 秒时会通知我。例如,如果有人在表上打开了一个事务并且忘记运行提交或回滚。这可以从系统表中获取吗?

sql-server-2008-r2

7
推荐指数
1
解决办法
1万
查看次数

SQL Server Profiler 的“持续时间”是指什么时间间隔?

我在生产服务器上遇到了奇怪的事情。客户端(都在本地 LAN 上)在查询出现超时错误,本应完全没有问题。

  • 它发生在 CPU 使用率低 (<1%) 的时候
  • 以及当硬盘驱动器 I/O 较低 (<1%) 时

我花了一个下午在 SQL Server Profiler 中实时观察跟踪,而毫无意义的绝对缩影是批处理:

SELECT GETDATE() As ServerDate
Run Code Online (Sandbox Code Playgroud)

探查器显示数字的地方:

  • 中央处理器: 0
  • 阅读次数: 0
  • 写入: 0
  • 持续时间:17,130毫秒
  • 开始时间: 2017-02-28 15:00:20.777
  • 结束时间: 2017-02-28 15:00:37.907

在此处输入图片说明

在这个数据库引擎中可能会发生什么,完全良性查询需要太长时间?

  • 防毒软件?
  • 一个不会在 17 秒内调度虚拟机的 VMWare 管理程序?
  • 一个内核模型停顿了 17 秒,但没有出现在任务管理器中?

因为即使服务器忙,一个查询,需要:

  • 零CPU
  • 零读取
  • 零写入
  • 并且对内存中的任何页面都没有副作用

不应该需要 17 秒才能完成。

期间

唯一的出路是想办法弄清楚这duration 意味着什么。

持续时间什么意思?是吗:

  • 开始:在数据库引擎接收到整个批次之后
  • 结束:查询完成后

或者是:

  • 开始:在数据库引擎接收到整个批次之后
  • 结束:在最后一个字节被发送到客户端之后

或者是: …

sql-server profiler sql-server-2014

5
推荐指数
1
解决办法
1636
查看次数