0
我有一個系統設置了存儲過程的批量執行10次。SQL過程執行順序
exec procedure 1
exec procedure 2
exec procedure 3
exec procedure 4
...
exec procedure 10
的過程被設計爲聚積基於記錄的在目標表中的ID的行駛總。
當我運行該批次時,我將得到不同步的結果。運行總數應該是前一行的運行總和加上當前行的值。
當我用GO語句在每個之間運行相同的批處理時,運行需要更長的時間,但運行正確。
是否有任何種類的提示(如「MAXDOP 1」)可以在這種情況下完成,以強制程序執行並按順序完成而不會失去同步?
我應該補充說,被調用的存儲過程本身調用幾個過程。如果這對解決方案有任何影響。
也許編輯程序本身會更好?很難說如果不知道更多的是怎麼回事 – 2015-02-10 21:51:51
顯然,程序的執行默認是並行化的,所以它們很快完成,但是它們的順序看起來很混亂。很明顯,插入GO可以確保它們按順序執行,這是你想要的,但是不會有並行性,所以它們需要更長的時間才能運行。請選擇任一順序或速度,你不能同時擁有。 – 2015-02-10 21:52:48
[存儲過程 - 強制執行順序]的可能重複(http://stackoverflow.com/questions/2682960/stored-procedure-forcing-execution-order) – 2015-02-11 07:52:33