You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何sys.sp_describe_first_result_set仅在Azure VM首次多CSV导入时返回1致进程挂起?

问题分析与解决方案

核心问题总结

  • 配置SQL Server Agent每2分钟执行一次SSIS包用于CSV文件导入,仅在Azure VM创建后首次批量导入多个CSV时出现进程挂起
  • 挂起关联系统存储过程sys.sp_describe_first_result_set;1,阻塞标识为Blkby=-2(孤立分布式事务),会话处于等待事务完成的Execute命令状态
  • 若先执行过单次CSV导入操作,后续批量导入可正常快速执行,无挂起问题

可能原因

  1. MSDTC初始化延迟:Azure VM首次启动后,分布式事务协调器(MSDTC)未完成预热或系统级注册,首次批量导入时SSIS尝试启动分布式事务,导致事务无法正常协调,触发孤立事务挂起。
  2. 元数据探测与事务冲突:sys.sp_describe_first_result_set是SSIS包在执行前用于探测目标表元数据的系统存储过程,首次批量操作时,元数据扫描流程与分布式事务初始化流程发生资源冲突,导致会话进入等待状态。

解决方案

  • 预初始化操作:在Azure VM部署完成后,手动执行一次单CSV文件的SSIS包导入,提前完成MSDTC初始化和SSIS元数据缓存,避免首次批量操作时的事务冲突。
  • 作业前置步骤:修改SQL Server Agent作业,在批量导入任务前添加一个执行单文件导入的前置步骤,确保首次作业执行时先完成初始化。
  • MSDTC配置检查:
    • 确认Azure VM上的MSDTC服务已启动(可通过services.msc查看)
    • 配置MSDTC安全设置,允许网络事务(若涉及跨资源访问)
    • 验证Azure VM防火墙已开放MSDTC所需端口(默认135端口及动态端口范围)
  • SSIS事务调整:临时将SSIS包的事务级别从要求改为支持,待首次执行完成后再恢复原事务设置,避免强制触发未初始化的分布式事务。

内容的提问来源于stack exchange,提问作者Anish Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:55:33