INITRANS引數

suphy23發表於2011-09-07

INITRANS用於對資料塊的行級並行操作的控制。首先介紹事務槽的概念,事務槽在資料塊頭中,儲存了有關事務的控制資訊。資料塊中的每行資料有一個鎖位,該鎖位號與事務槽相同,資料庫伺服器就是透過每行的鎖位找到資料塊頭中的事務槽,利用資料槽中的事務資訊完成對該行資料的操作。每個事務只使用一個事務槽。

也就是說,如果某個事物鎖定了這個塊的資料,則會在這個地方(事務槽)記錄事務的標識,當然那個事務要先看一下這個地方是不是已經有人佔用了,如果有,則去看看那個事務是否為活動狀態。如果不活動,比如已經提交或者回滾,則可以覆蓋這個地方。如果活動,則需要等待(閂的作用)

initrans值為2,則資料庫伺服器在一個資料塊中最多有兩個並行的事務可以獨立、並行的透過自己的事務槽,實現對共享資料塊中的行資料的事務操作。所以,如果有大量的併發訪問使用的這個塊,則引數不能太小,否則資源競爭將導致系統併發效能下降。

小結:建立表的時候除非已經清楚,大部分的情況下沒有必要調整INITRANS引數,通常1-4以下足夠用了,INITRANS 設定非常大的時候ORACLE有出現壞塊的BUG

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12615085/viewspace-706797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章