2009-08-26 28 views
0

我在一個大型數據庫上做了一些工作,它基本上需要調用一個存儲過程,併爲表中的每個值(大約20k條目)使用不同的參數。我希望在整個過程運行所需的時間內,在該表或每個循環所涉及的其他表上不阻塞的情況下執行此操作。從SQL內部可以將事務限制在光標上的單個循環中嗎?我可以限制對我的SQL遊標內的單個循環的阻塞

對於我來說,手動檢查是否有對錶格進行了更改,我在進程完成後循環併爲新條目再次運行時非常簡單,因此我不擔心跟蹤對那。

回答

0

您可以將transaction isolation level設置爲未讀取。 但確保這就是你真正想要的,因爲你可以弄髒讀取,丟失更新,幻像更新等......

0

我會建議循環20000條記錄是一個不錯的選擇。最好用基於集合的解決方案替換存儲的proc。你應該避免使用遊標。