存储过程在由数据工厂执行时运行缓慢



我制作了一个在SQL服务器中运行14分钟的存储过程(在Azure DB上,数据保留在同一个数据库中(。

当此存储过程在数据工厂中作为管道执行时,大约需要 1 小时或更长时间。当我将所选时间段加倍时,SQL执行大约需要30分钟,但DF甚至在4.5小时后超时。

我很确定DF只是一个工具,它将使用普通的SQL引擎,因此性能是相同的,但事实并非如此。 有人知道发生了什么吗?

这个"答案"来得晚了几年,但是当我遇到自己的类似问题时,我偶然发现了这个问题。通过 SSMS 运行需要几秒钟才能完成的存储过程在通过 Azure 数据工厂触发(使用相同的参数和要执行的工作(时大约需要 20 分钟才能完成。

但是,这种缓慢仅在通过调试选项运行 ADF 管道时出现。一旦我通过正常触发器运行它,它就会在正常时间内完成。如果您看到类似的症状,或者可能像我一样,您的症状是使用调试选项的结果......或者,你可能已在 Azure 中启用了一些具有类似效果的诊断。

没有承诺这将解决您的问题,但我想我会把它放在那里,以防它对任何人都有用。

我在 ADF 中遇到了类似的问题,在 SSMS 中运行期间,我的 TSQL 过程超出 4 小时以上,而不是 2 小时的正常完成时间。

作为一种解决方法,我将过程拆分为子过程序列并调用主过程以减轻缓慢。 我尝试从 SSMS 中的查询存储进行故障排除,但没有从中找到根本原因的太多帮助。

最新更新