CXSYNC_PORT Azure 中的等待类型 Sql 数据库

CXSYNC_PORT wait type in Azure Sql Database

我现在间歇性地遇到这个问题,其中查询(从存储过程调用)用于 CXSYNC_PORT 等待类型并继续保持更长时间时间(有时长达 8 小时)。我不得不终止进程,然后重新运行程序。此过程每 2 小时从 ADF 管道调用一次。

出现这种行为的原因是什么?我该如何解决这个问题?

我查了很多也没有微软文档讲等待类型:CXSYNC_PORT。其他人也问过同样的问题,但仍然没有更多细节。

大多数建议是在更多的论坛上问同样的问题。或者找专业工程师帮忙,他们会单独保密处理你的问题。

向 Azure 支持寻求详细帮助:https://docs.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request

Microsoft 工程师就此问题提供了更多详细信息,这是同一个问题:

  • 作为修复的一部分,CXPACKET 等待被进一步分解为 CXSYNC_CONSUMER 和 CXSYNC_PORT(数据传输仍在等待 报告为 CXPACKET)以区分不同的等待时间 以便正确诊断问题。
  • 基本上,CXPACKET分为3个:CXPACKET,CXSYNC_PORT, CXSYNC_CONSUMER。 CXPACKET 用于数据传输同步,而 CXSYNC_* 用于其他同步。 CXSYNC_PORT用于 正在同步 opening/closing 消费之间的交换端口 线程和生产线程。 这里的长时间等待可能表明服务器负载 并且缺少可用线程。 包含排序的计划可能有所帮助 这种等待类型,因为完成排序可能发生在端口之前 同步。

请参考此 link What is causing wait type CXSYNC_PORT and what to do about it? 以获得更多有用的消息。但目前还没有确切的解决方案。

使用查询提示 OPTION(MAXDOP 1) 这将 运行 您的长 运行ning 查询在单个线程中进行,您不会得到 CX 类型的等待。根据我的经验,这可以使执行时间大幅减少 10-20 倍,并且可以腾出 CPU 用于其他任务,因为没有上下文切换和线程协调 activity.