2017-10-15 109 views
1

我一直在嘗試開發一個從FTP服務器導入文件並使用Azure SQL服務中的存儲過程分析內容的Azure邏輯應用程序。在Azure Logic App中執行存儲過程失敗,並出現網關超時

目前我一直在努力從邏輯應用程序執行此存儲過程,存儲過程最多可能需要10分鐘才能執行。

我一直在嘗試一些解決方案建立執行存儲過程的行動在Azure的邏輯應用程序: - 添加執行存儲過程爲一個具有(PT1H)一個異步超時的情況下采取行動 - 用DO-環繞它直到檢查返回碼的循環。

這些解決方案似乎都不能解決問題。在開發此Azure Logic應用程序時,有沒有人可以嘗試其他任何方法?

回答

0

如果您可以通過減少JOIN下表中的數據有效負載來縮短SP的時間,那麼您可以使用分頁來通過Logic App實現成功執行。

例如,讓我們說你有大的,因爲像sp_UpdateAColumn存儲過程基於與tableBtableCtableD

現在,這不運行的JOIN哪些更新上tableA列,但需要超過2分鐘才能完成, tableA中的行數。

您可以說創建一個新列isUpdatedtableA這是說布爾,默認情況下減少時間上的這個SP具有價值= 0

所以,這時如果使用

SELECT TOP 100 * FROM tableA WHERE isUpdated =0 

代替整個tableA在JOIN中,那麼你應該能夠在兩分鐘內更新100行。

所以,如果你sp_UpdateAColumnsp_UpdateAColumnSomeRows(pageSize int)更改SP的定義,然後在該SP所有你需要做的是在這些連接在您使用TableA使用 (SELECT TOP (SELECT pageSize) * FROM tableA WHERE isUpdated =0)代替。

現在您需要確保調用這個新的SP足夠的時間來處理所有記錄,因此您需要在邏輯應用程序中使用do-until循環(對於TableA/pazeSize時間中的總行數)並將您的SP在這個循環內。

嘗試使用PageSize參數進行調整以找到最佳分頁大小。

相關問題