gpt4 book ai didi

azure - 在 Azure 逻辑应用程序中执行存储过程因网关超时而失败

转载 作者:行者123 更新时间:2023-12-05 07:39:53 26 4
gpt4 key购买 nike

我一直在尝试开发一个 Azure 逻辑应用程序,该应用程序从 FTP 服务器导入文件,并使用 Azure SQL 服务中的存储过程解析内容。

目前,我一直在努力从逻辑应用程序执行这个存储过程;存储过程最多可能需要 10 分钟才能执行。

我一直在尝试一些在 Azure 逻辑应用中设置执行存储过程操作的解决方案:- 添加执行存储过程作为异步超时 (PT1H) 的操作- 用 do-until 循环包围它,检查返回代码。

这些解决方案似乎都无法解决问题。在开发此 Azure 逻辑应用程序时,还有其他我可以尝试的方法吗?

最佳答案

如果您可以通过减少 JOIN 下表中的数据负载来减少 SP 时间,那么您可以使用分页来通过 Logic App 实现成功执行。

例如,假设您有一个像 sp_UpdateAColumn 这样的存储过程,它根据与 tableBtableC 的 JOIN 更新 tableA 上的列tableD

现在,它确实运行了,但需要 2 分钟以上才能完成,因为 tableA 中有大量行。

您可以通过在 tableA 上创建一个新列 isUpdated 来减少此 SP 上的时间,该列为 bool 值,默认值为 =0

那么如果你使用

SELECT TOP 100 * FROM tableA WHERE isUpdated =0

而不是 JOIN 中的整个 tableA 那么您应该能够在两分钟内更新 100 行。

因此,如果您将 SP 的定义从 sp_UpdateAColumn 更改为sp_UpdateAColumnSomeRows(pageSize int) 那么在此 SP 中,您需要做的就是在使用 TableA 的 JOIN 中使用改为(SELECT TOP (SELECT pageSize ) * FROM tableA WHERE isUpdated =0)

现在您需要确保这个新的 SP 被调用足够的次数来处理所有记录,为此您需要在逻辑应用程序中使用 do-until 循环(对于 TableA/pazeSize 次中的总行数)并在内部调用您的 SP这个循环。

尝试调整 PageSize 参数以找到最佳分页大小。

关于azure - 在 Azure 逻辑应用程序中执行存储过程因网关超时而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com