ITL
檢視T2的事務槽 Select aa.ini_trans,aa.max_trans From dba_tables aa Where table_name='T2' Create Table t10(Id Int); Insert Into t10 values(1); Insert Into t10 values(2); Insert Into t10 values(3); 檢視資料在快上分佈的位置 Select Id,dbms_rowid.rowid_relative_fno(Rowid) file#, dbms_rowid.rowid_block_number(Rowid) block# From t10 一個事務開始以後,在一個資料塊上得到一個事務槽,那麼在這個事務提交以前,這個事務槽會一直佔用,直到這個事務提交釋放這個事務槽 只有在已經提交以後,這個itl事務槽中的scn才會有數值。 一個事務在一個資料塊上佔用一個事務槽 如果是insert,預設每個表的ini_trans itl是2,儘量保持這個資料塊的事務數不超過2, 採用在多個資料塊中插入的情況。這樣將insert分佈到多個資料塊中,防止了itl的爭用。 三個會話同時修改一個資料塊。 事務槽自己增加到了3個。 因為max_trans是255,因此發生ITL爭用的機率也很小。 因此基於上面的兩種情況來說,ITL發生爭用的機率很小。 Cleanout有2種: 1:fast commit cleanout (提交清除) 2:delayed block cleanout(延遲清除). 提交清除是如何工作的? Oracle會記錄已修改的塊列表,這些列表可以有20個塊,Oracle根據需要分配多個這樣的列表, 但是如果這些修改的塊加起來超過buffer_cache的10%,oracle就停止分配這樣的列表,因此 當提交時就只會清理最多10%buffer_cache的資料塊,其餘的部分就延遲清除,這樣也是為了 提高commit的效率。U 還有一種情況,就是當事務還未commit時,修改的資料塊已經寫入硬碟,當發生commit時 oracle並不會把block重新讀入做cleanout,而是把cleanout留到下一次對此塊的訪問是完成。 注意:對於Oracle來說,對於一個事務,可以是快速提交、也可以是延遲提交。目的都是為了提高提交的速度。 提交以後,oracle需要對ITL事務槽、每一行的鎖定標記進行清除。 如果是快速提交,那麼在提交的時候,會將事務表和每一個資料塊的ITL槽進行清除。但是鎖定標記可能沒有清除,等下次用到的時候再進行清除。 如果是延遲提交,那麼在提交的時候,只是將事務表進行清除,並沒有對ITL事務槽進行清除,每一行的鎖定標記也沒有清除。 塊清除的過程並不包括每個行的鎖定標記的清除,主要指的是ITL的清除。 1、事務是否已經提交、事務對應的SCN,這些資訊都是以回滾段事務表中的為主,事務槽中的不準確 2、事務槽中的事務id和uba地址是準確的 3、事務槽1中的事務id和回滾段中的事務id肯定不是一樣的,不同回滾段中的事務id也一定不一樣。 4、每一個回滾段塊中都有一個事務id,記錄哪個事務正在使用這個塊。 5、回滾事務表可能被覆蓋,回滾段也可能被覆蓋 對於前者,我們需要增加回滾段 對於後者,我們需要增大回滾段 回滾段也是迴圈使用的,只有活動的回滾段不會被覆蓋
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10678398/viewspace-720935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle ITL槽Oracle
- 深入研究ITL阻塞與ITL死鎖 作者 piner
- 遭遇ITL死鎖
- ITL(Interested Transaction List)REST
- ITL的含義
- zt_ITL Cleanout和ITL中的事務狀態分析
- 推薦:深入研究ITL阻塞與ITL死鎖(轉載)
- 表的itl 屬性
- ITL與事務處理
- enq: TX - allocate ITL entryENQ
- TX:ITL LOCK(INITRANS,MAXINTRANS)
- ITL和Freelist的區別
- oracle ITL TX MODE 4問題Oracle
- ITL事務槽記載-01
- 從Dump資料塊看ITL
- ITL:泰國移動電商的新模式模式
- Oracle ITL (Interested Transaction List) - 事務槽OracleREST
- oracle block資料塊itl小記OracleBloC
- 什麼是Interested Transaction List(ITL)--Oracle?RESTOracle
- enq: TX - allocate ITL entry等待事件分析ENQ事件
- zt_Orace ITL(Interested Transaction List) 說明REST
- Segments by ITL Waits 問題及解決AI
- 從ITL到Undo前映象提取實驗
- ITL中xid 和 uba的驗證!
- 關於enq: TX - allocate ITL entry等待事件ENQ事件
- itl競爭模擬與解決系列(二)
- itl在被覆蓋之前被儲存了下來!
- oracle資料塊dump檔案中ITL詳解Oracle
- 關於block的ITL和dump的擴充套件BloC套件
- [20150721]enq TX - allocate ITL entryENQ
- 關於enq: TX - allocate ITL entry的問題分析ENQ
- 事務提交時itl上flag標記U測試!
- itl在被覆蓋之前被儲存了下來1!
- 【MOS】 Troubleshooting waits for enq: TX - allocate ITL entry(1472175.1)AIENQ
- 【故障處理】佇列等待之TX - allocate ITL entry案例佇列
- [20120224]itl的問題.txt
- [20210604]索引分裂與 itl ktbitflg.txt索引
- [20231027]Index ITL Limit 2.txtIndexMIT