DB2中,可以用三種方法來提高並發度:
1.降低隔離級, 讀操作不會因為鎖沖突被攔
select .... with UR
2.或,改變加鎖的時機,減少鎖沖突(這樣其行上的insert/update/delete操作不會鎖住條件不同select操作)
db2set DB2_EVALUNCOMMITTED=ON
db2set DB2_SKIPDELETED=ON
db2set DB2_SKIPINSERTED=ON
3.或在where相關字段上加索引,減少鎖占用
注解:
db2set DB2_EVALUNCOMMITTED=ON - 這個參數將在記錄鎖之前進行謂詞檢查,盡量減少鎖的時間;
db2set DB2_SKIPINSERTED=ON - 這個參數將新insert且沒有提交的數據跳過;例如,SELECT/UPDATE語句不會發現這條記錄;
db2set DB2_SKIPDELETED=ON - 這個參數將新delete且沒有提交的數據跳過;例如,SELECT/UPDATE語句不等待這條記錄的提交,並且認為他已經被刪除了。