交易控制的重要性,begin tran記得要commit,否則會block一堆人
在我們要對某一筆資料進行更新時,SQL會對該筆資料下一個X的Lock,
此時如有其他交易嘗試要取得該筆資料的Lock權限時,都必須等待該X的Lock解掉,
因此我故意模擬一筆記錄正在被某一個交易做更新,此時我們再開另一個Session
來做Select看看,整個流程如下圖:
如上圖所示,當我開啟Session57來更新一筆資料(故意沒有Commit),
此時可以看見Session57對該筆資料下了一個X的Lock。
因此當我再開一個Session58去Select該筆資料(Select要下S的Lock)時
,會發現須等待Session57釋放Lock後,Session58才能再對該筆資料
下S的Lock。
因此當您開啟交易異動資料請務必記得結束交易,否則別人可是要等到
天荒地老
我是ROCK
rockchang@mails.fju.edu.tw