具有两个节点的 Always On 可用性组,同步提交。
辅助副本上的重做线程争用会定期创建一个非常大的重做队列。我已经确认等待类型类似于以下内容:
在我的例子中,这是一个扩展事件会话(在重做队列很大时捕获)输出分组和聚合,如上面的链接所示:
我的问题:
如何找出导致 LCK_M_SCH_M 等待的 DDL 操作的确切来源?
具有两个节点的 Always On 可用性组,同步提交。
辅助副本上的重做线程争用会定期创建一个非常大的重做队列。我已经确认等待类型类似于以下内容:
在我的例子中,这是一个扩展事件会话(在重做队列很大时捕获)输出分组和聚合,如上面的链接所示:
我的问题:
如何找出导致 LCK_M_SCH_M 等待的 DDL 操作的确切来源?
正如 Brent Ozar 在评论部分提到的那样,要在主要和次要之间找到与时间相关的等待类型(以及导致等待的原因)并不是一项简单的任务。我正在回答你关于寻找来源的问题。我修改了您提到的博客文章中给出的扩展事件跟踪定义。删除了 where 子句,以便您可以捕获所有导致等待的会话。
添加了更多操作以捕获更多信息。例如:
这是完整的定义。