(4)數據庫并發
DB2在做數據修改時,在日志中既記錄了修改前的數據(也就是UNDO日志),也記錄了修改后的數據(即REDO日志)。對于DB2 V9.7之前的版本,讀取數據的應用程序,遇到正在被其他應用程序修改的數據時,將會進行鎖等待(除非使用UR隔離級別)。對于DB2 V9.7及以后版本,由于引入了當前已落實,讀取數據的應用程序將不需要等待鎖釋放,而是會從日志中讀取數據修改前的版本。當請求加鎖時,DB2會檢查鎖列表,看數據對象上是否已加鎖,以及請求的鎖與已加的鎖是否兼容。DB2強調“讀一致性”,在讀數據行時,會根據隔離級別的不同而加S或IS鎖,只有在使用UR隔離級別時才不加S或IS鎖,這保證了不同應用程序和用戶讀取的數據是一致的。DB2缺省的隔離級是CS,對于大多數應用來說,缺省的CS級別可以滿足需要。DB2在UR隔離級別下,遇到正在被更改的數據會讀最新的沒有提交的臟數據。