1.RR隔離級別: 在此隔離級別下, DB2會(huì)鎖住所有相關(guān)的紀(jì)錄。 1.RR隔離級別:在此隔離級別下, DB2會(huì)鎖住所有相關(guān)的紀(jì)錄。 在一個(gè)SQL語句執(zhí)行期間, 所有執(zhí)行此語句掃描過的紀(jì)錄都會(huì)被加上相應(yīng)的鎖。在一個(gè)SQL語句執(zhí)行期間,所有執(zhí)行此語句掃描過的紀(jì)錄都會(huì)被加上相應(yīng)的鎖。 具體的鎖的類型還是由操作的類型來決定, 如果是讀取,則加共享鎖; 如果是更新, 則加獨(dú)占鎖。具體的鎖的類型還是由操作的類型來決定,如果是讀取,則加共享鎖;如果是更新,則加獨(dú)占鎖。 由于會(huì)鎖定所有為獲得SQL語句的結(jié)果而掃描的紀(jì)錄, 所以鎖的數(shù)量可能會(huì)很龐大, 這個(gè)時(shí)候, 索引的增加可能會(huì)對SQL語句的執(zhí)行有很大的影響,因?yàn)樗饕龝?huì)影響SQL語句掃描的紀(jì)錄數(shù)量。由於會(huì)鎖定所有為獲得SQL語句的結(jié)果而掃描的紀(jì)錄,所以鎖的數(shù)量可能會(huì)很龐大,這個(gè)時(shí)候,索引的增加可能會(huì)對SQL語句的執(zhí)行有很大的影響,因?yàn)樗饕龝?huì)影響SQL語句掃描的紀(jì)錄數(shù)量。
2.RS隔離級別: 此隔離級別的要求比RR隔離級別稍弱,此隔離級別下會(huì)鎖定所有符合條件的紀(jì)錄。 2.RS隔離級別:此隔離級別的要求比RR隔離級別稍弱,此隔離級別下會(huì)鎖定所有符合條件的紀(jì)錄。 不論是讀取, 還是更新, 如果SQL語句中包含查詢條件, 則會(huì)對所有符合條件的紀(jì)錄加相應(yīng)的鎖。不論是讀取,還是更新,如果SQL語句中包含查詢條件,則會(huì)對所有符合條件的紀(jì)錄加相應(yīng)的鎖。 如果沒有條件語句, 也就是對表中的所有記錄進(jìn)行處理,則會(huì)對所有的紀(jì)錄加鎖。如果沒有條件語句,也就是對錶中的所有記錄進(jìn)行處理,則會(huì)對所有的紀(jì)錄加鎖。
3.CS隔離級別: 此隔離級別僅鎖住當(dāng)前處理的紀(jì)錄。 3.CS隔離級別:此隔離級別僅鎖住當(dāng)前處理的紀(jì)錄。
4.UR隔離級別: 此隔離級別下,如果是讀取操作,不會(huì)出現(xiàn)任何的行級鎖。 4.UR隔離級別:此隔離級別下,如果是讀取操作,不會(huì)出現(xiàn)任何的行級鎖。 對于非只讀的操作,它的鎖處理和CS相同。對於非只讀的操作,它的鎖處理和CS相同。
DB2默認(rèn)的隔離級別是CS。 DB2默認(rèn)的隔離級別是CS。 即游標(biāo)穩(wěn)定性。即游標(biāo)穩(wěn)定性。