兩個SP正在一個接一個地執行,另一個則被第一個阻塞。他們都試圖更新同一張表。兩個SP的表現如下由另一個事務阻塞的sql服務器更新,更新中的併發性
-
CREATE PROCEDURE [DBO] [SP1]
開始SET TRANSACTION ISOLATION級快照。
BEGIN TRANSACTION ImpSchd更新表t1 .......... ............................ .... //更新 一組[N1,N2 ... N100]記錄
COMMIT TRANSACTION ImpSchd
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;END
2.
CREATE PROCEDURE [DBO]。[SP2]
開始
更新表t1 ....... ... ................................ //更新 一組[n101,n102 .... .n200]記錄
END
SP1時,正在運行的快照隔離級爲什麼會阻止SP2我的問題是(N兩者都更新不同的記錄集)?
如果我同時運行兩個不同的記錄集的第一個sp它 完美的作品。
我該如何克服這種情況?
如果使用快照級別隔離來爲每個sp更新同一個表,那麼它將是一個更大的更改。
如果兩個sp必須更新表中的相同記錄,我應該如何處理(兩個sp將更新不同的列)?
然後當我運行sp1的兩個大型記錄集,這是如何得到成功沒有任何阻塞? –
你能否澄清兩套大記錄,他們是否從不同的表 – TheGameiswar
沒有相同的表的不同記錄。 –