[20220223]Index ITL Limit.txt
[20220223]Index ITL Limit.txt
--//昨天看了連結重複測試:
1.環境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.測試指令碼:
rem
rem Script: itl_limit.sql
rem Author: Jonathan Lewis
rem Dated: Dec 2010
rem
rem Last tested
rem 19.3.0.0
rem 12.2.0.1
rem 12.1.0.2
rem 11.1.0.6
rem
create table itl_limit(n1 number) pctfree 0;
--create unique index il_01 on itl_limit(n1) pctfree 0;
create or replace procedure recursive_itl(i_tx_count number)
as
pragma autonomous_transaction;
begin
if i_tx_count != 0 then
insert into itl_limit values(200 - i_tx_count);
recursive_itl(i_tx_count - 1);
commit;
end if;
end;
/
alter session set events '10046 trace name context forever, level 8';
execute recursive_itl(200);
alter system checkpoint;
alter session set events '10046 trace name context off';
prompt ==========================================
prompt If there is no index on the table then you
prompt should see 169 rows in one block and 31 in
prompt the other. But if there is an index there
prompt should be no rows thanks to the rollback
prompt caused by the error.
prompt ==========================================
select
dbms_rowid.rowid_block_number(rowid), count(*)
from
itl_limit
group by
dbms_rowid.rowid_block_number(rowid)
;
prompt =================================
prompt Try for a tree dump on the index
prompt after which you can dump the root
prompt block to see the ITL entries
prompt =================================
column object_id new_value m_object_id
select object_id, object_type, object_name
from user_objects
where object_name = 'IL_01'
/
alter session set events 'immediate trace name treedump level &m_object_id ';
3.先註解前面索引的建立:
SCOTT@book> @ itl.txt
Table created.
Procedure created.
Session altered.
PL/SQL procedure successfully completed.
System altered.
Session altered.
==========================================
If there is no index on the table then you
should see 169 rows in one block and 31 in
the other. But if there is an index there
should be no rows thanks to the rollback
caused by the error.
==========================================
DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) COUNT(*)
------------------------------------ ----------
4965 169
4966 31
=================================
Try for a tree dump on the index
after which you can dump the root
block to see the ITL entries
=================================
no rows selected
ERROR:
ORA-49100: Failed to process event statement [immediate trace name treedump level ]
ORA-49601: syntax error: found "End-of-Statement": expecting one of: "=,<string>,<number>,CRASH,DEBUGGER,ORADEBUG" etc..
--//可以發現很快完成,但是一塊插入169,另外一塊插入31條記錄.說明資料塊最大169個ITL槽.
SCOTT@book> select rowid from itl_limit where n1=1;
ROWID
------------------
AABQ8qAAEAAABNlAAB
SCOTT@book> @ rowid AABQ8qAAEAAABNlAAB
OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
331562 4 4965 1 0x1001365 4,4965 alter system dump datafile 4 block 4965
SCOTT@book> alter system checkpoint ;
System altered.
BBED> set dba 4,4965
DBA 0x01001365 (16782181 4,4965)
BBED> map
File: /mnt/ramdisk/book/users01.dbf (4)
Block: 4965 Dba:0x01001365
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 4080 bytes @20
struct kdbh, 14 bytes @4108
struct kdbt[1], 4 bytes @4122
sb2 kdbr[169] @4126
ub1 freespace[2643] @4464
ub1 rowdata[1081] @7107
ub4 tailchk @8188
--//ktbbh 佔用4080,說明itl槽佔用空間很大,1個itl佔24位元組 ,24*(169+1) = 4080.
--//你可以發現freespace[2643],此時oracle已經不允許再插入資料到該塊中.
--//重複測試,取消前面建立索引註解.
SCOTT@book> drop table itl_limit purge ;
Table dropped.
SCOTT@book> @ itl.txt
Table created.
Index created.
Procedure created.
Session altered.
--//掛起,因為插入索引在相同的塊中,限制槽數量168,注意其中1個使用作為索引分裂.
SCOTT@book> @ ashtop event 1=1 &min
Total Distinct Distinct
Seconds AAS %This EVENT FIRST_SEEN LAST_SEEN Execs Seen Tstamps
--------- ------- ------- ------------------------------------------ ------------------- ------------------- ---------- --------
60 1.0 100% | enq: TX - allocate ITL entry 2022-02-24 15:47:34 2022-02-24 15:48:33 1 60
--//等待結束.
BEGIN recursive_itl(200); END;
*
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 6
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
ORA-06512: at "SCOTT.RECURSIVE_ITL", line 7
--//出現31次,1次在line 6,30次在line 7.
System altered.
Session altered.
==========================================
If there is no index on the table then you
should see 169 rows in one block and 31 in
the other. But if there is an index there
should be no rows thanks to the rollback
caused by the error.
==========================================
no rows selected
=================================
Try for a tree dump on the index
after which you can dump the root
block to see the ITL entries
=================================
OBJECT_ID OBJECT_TYPE OBJECT_NAME
---------- ------------------- ------------------------------
331565 INDEX IL_01
Session altered.
$ grep "enq: TX - allocate ITL entry" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_50990.trc | grep "^WAIT"
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000439 name|mode=1415053316 usn<<16 | slot=7208991 sequence=15 obj#=331565 tim=1645688810894227
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1001000 name|mode=1415053316 usn<<16 | slot=10551316 sequence=16 obj#=331565 tim=1645688811895335
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000883 name|mode=1415053316 usn<<16 | slot=7077902 sequence=15 obj#=331565 tim=1645688812896308
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000881 name|mode=1415053316 usn<<16 | slot=8519706 sequence=13 obj#=331565 tim=1645688813897279
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000936 name|mode=1415053316 usn<<16 | slot=5701654 sequence=14 obj#=331565 tim=1645688814898303
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000864 name|mode=1415053316 usn<<16 | slot=11403269 sequence=16 obj#=331565 tim=1645688815945333
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000814 name|mode=1415053316 usn<<16 | slot=5111836 sequence=15 obj#=331565 tim=1645688816946243
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1001011 name|mode=1415053316 usn<<16 | slot=8060954 sequence=16 obj#=331565 tim=1645688817947346
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000888 name|mode=1415053316 usn<<16 | slot=8323100 sequence=15 obj#=331565 tim=1645688818948325
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000858 name|mode=1415053316 usn<<16 | slot=2555919 sequence=15 obj#=331565 tim=1645688819949274
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000215 name|mode=1415053316 usn<<16 | slot=524313 sequence=13612 obj#=331565 tim=1645688820985283
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 1000861 name|mode=1415053316 usn<<16 | slot=5505036 sequence=16 obj#=331565 tim=1645688821986232
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000864 name|mode=1415053316 usn<<16 | slot=7208991 sequence=15 obj#=331565 tim=1645688823987240
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000924 name|mode=1415053316 usn<<16 | slot=10551316 sequence=16 obj#=331565 tim=1645688825988255
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000892 name|mode=1415053316 usn<<16 | slot=7077902 sequence=15 obj#=331565 tim=1645688827989243
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000953 name|mode=1415053316 usn<<16 | slot=8519706 sequence=13 obj#=331565 tim=1645688829990290
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000854 name|mode=1415053316 usn<<16 | slot=5701654 sequence=14 obj#=331565 tim=1645688831991236
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000904 name|mode=1415053316 usn<<16 | slot=11403269 sequence=16 obj#=331565 tim=1645688833992235
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2001079 name|mode=1415053316 usn<<16 | slot=5111836 sequence=15 obj#=331565 tim=1645688835993409
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000732 name|mode=1415053316 usn<<16 | slot=8060954 sequence=16 obj#=331565 tim=1645688837994231
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000915 name|mode=1415053316 usn<<16 | slot=8323100 sequence=15 obj#=331565 tim=1645688839995242
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000690 name|mode=1415053316 usn<<16 | slot=2555919 sequence=15 obj#=331565 tim=1645688842007228
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000883 name|mode=1415053316 usn<<16 | slot=524313 sequence=13612 obj#=331565 tim=1645688844008216
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 2000907 name|mode=1415053316 usn<<16 | slot=5505036 sequence=16 obj#=331565 tim=1645688846009222
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001690 name|mode=1415053316 usn<<16 | slot=7208991 sequence=15 obj#=331565 tim=1645688850014215
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001914 name|mode=1415053316 usn<<16 | slot=10551316 sequence=16 obj#=331565 tim=1645688854016227
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001873 name|mode=1415053316 usn<<16 | slot=7077902 sequence=15 obj#=331565 tim=1645688858018225
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4002027 name|mode=1415053316 usn<<16 | slot=8519706 sequence=13 obj#=331565 tim=1645688862020349
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001906 name|mode=1415053316 usn<<16 | slot=5701654 sequence=14 obj#=331565 tim=1645688866022349
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001905 name|mode=1415053316 usn<<16 | slot=11403269 sequence=16 obj#=331565 tim=1645688870024351
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001881 name|mode=1415053316 usn<<16 | slot=5111836 sequence=15 obj#=331565 tim=1645688874026344
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001889 name|mode=1415053316 usn<<16 | slot=8060954 sequence=16 obj#=331565 tim=1645688878028329
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001919 name|mode=1415053316 usn<<16 | slot=8323100 sequence=15 obj#=331565 tim=1645688882030345
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001881 name|mode=1415053316 usn<<16 | slot=2555919 sequence=15 obj#=331565 tim=1645688886032324
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001892 name|mode=1415053316 usn<<16 | slot=524313 sequence=13612 obj#=331565 tim=1645688890034323
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 4001910 name|mode=1415053316 usn<<16 | slot=5505036 sequence=16 obj#=331565 tim=1645688894036329
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5002006 name|mode=1415053316 usn<<16 | slot=7208991 sequence=15 obj#=331565 tim=1645688899038455
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001705 name|mode=1415053316 usn<<16 | slot=10551316 sequence=16 obj#=331565 tim=1645688904040258
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5002228 name|mode=1415053316 usn<<16 | slot=7077902 sequence=15 obj#=331565 tim=1645688909064515
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001622 name|mode=1415053316 usn<<16 | slot=8519706 sequence=13 obj#=331565 tim=1645688914092283
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5002165 name|mode=1415053316 usn<<16 | slot=5701654 sequence=14 obj#=331565 tim=1645688919124421
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001450 name|mode=1415053316 usn<<16 | slot=11403269 sequence=16 obj#=331565 tim=1645688924176521
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5002261 name|mode=1415053316 usn<<16 | slot=5111836 sequence=15 obj#=331565 tim=1645688929198559
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001168 name|mode=1415053316 usn<<16 | slot=8060954 sequence=16 obj#=331565 tim=1645688934244281
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001450 name|mode=1415053316 usn<<16 | slot=8323100 sequence=15 obj#=331565 tim=1645688939267445
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5002147 name|mode=1415053316 usn<<16 | slot=2555919 sequence=15 obj#=331565 tim=1645688944301517
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 5001221 name|mode=1415053316 usn<<16 | slot=524313 sequence=13612 obj#=331565 tim=1645688949323251
WAIT #140638641057288: nam='enq: TX - allocate ITL entry' ela= 3000676 name|mode=1415053316 usn<<16 | slot=5505036 sequence=16 obj#=331565 tim=1645688952357505
--//1000439+1001000+1000883+1000881+1000936+1000864+1000814+1001011+1000888+1000858+1000215+1000861 = 12009650
--//2000864+2000924+2000892+2000953+2000854+2000904+2001079+2000732+2000915+2000690+2000883+2000907 = 24010597
--//4001690+4001914+4001873+4002027+4001906+4001905+4001881+4001889+4001919+4001881+4001892+4001910 = 48022687
--//5002006+5001705+5002228+5001622+5002165+5001450+5002261+5001168+5001450+5002147+5001221+3000676 = 58020099
--//12009650+24010597+48022687+58020099 = 142063033
--//142063033/1000000 = 142.063033
--//共 12*1+12*2+12*4+11*5+3 = 142 .很奇怪作者如何分析總共需要142秒後出現死鎖情況的呢?
--//共出現48次wait nam='enq: TX - allocate ITL entry'.噢明白了,仔細看原始連結
--//
--//在169次插入時出現阻塞,它的嘗試演算法是12個ITL槽為一組,開始等待1秒,然後再換12個ITL槽,等待2秒,再換12個ITL槽,等待4秒,
--//再換11個ITL槽嘗試,等待5秒,在最後1個ITL槽時嘗試等待3秒,監測為死鎖,整個事務全部回滾.
--//看來以下連結提供的偽碼有一點點不同.
%E2%80%93-changes-in-recent-releases-script/
--//連結提供的偽碼如下,適用於11.2.0.4以上版本,不過作者的偽碼針對的資料塊,感覺索引塊也應該一樣,當然前面的測試監測到死鎖結
--//束了.這樣按照測試下面的偽碼還是存在問題,因為原作者的測試僅僅使用5個ITL槽.
iteration = 0
LOOP
iteration++
FOR i IN itl.FIRST..itl.LAST
LOOP
EXIT WHEN itl(i) IS FREE
IF i <> itl.LAST THEN
WAIT ON itl(i) FOR min(power(2,iteration-1),5) SECONDS
ELSIF iteration <= 10 THEN
WAIT ON itl(i) FOR power(2,iteration-1) SECONDS
ELSE
WAIT ON itl(i) FOREVER
END IF
END LOOP
EXIT WHEN free_itl_found
END LOOP
--//另外感覺在索引段上發生'enq: TX - allocate ITL entry'機率有點低.遇到169個插入同時操作1個索引塊的情況,並且提交很慢(或
--//者不提交的情況)才能遇到上面的情況.也許這樣不會是死鎖而是阻塞,看來我自己也給測試看看如上的偽碼是否正確.
--//轉載:
All 48 waits occur after the 169th attempt to insert a row. Oracle rotates through 12 ITL slots waiting one second on
each, then goes round the loop again waiting 2 seconds on each, then 4 seconds, then 5 seconds – except it doesn't wait
on the 12th ITL on the final loop, instead it reports "DEADLOCK DETECTED (ORA-00060)" in the trace file and dumps a
Deadlock graph of the form:
所有48次等待都發生在第169次嘗試插入行之後。Oracle透過12個ITL插槽旋轉,每個插槽等待1秒,然後再次迴圈等待2秒,然後4秒,然
後5秒——除了它不等待最後一個迴圈的第12個ITL,而是報告檢測到的死鎖(ORA-00060)&在跟蹤檔案中轉儲表單的死鎖圖形:
--//轉載:
If you comment out the creation of the index il_01 then the script completes very quickly (complaining, of course, about
the attempt to do a treedump with a null level (ORA-49100: Failed to process event statement). Assuming you're using an
8KB block size the rowid count query will show that you've got 169 rows in one block and 31 rows in the other – and if
you dump the block with 169 rows you will find that (a) there's loads of empty space in the block, and (b) the number of
ITL entries has reached 169, and that's the limiting factor that restricted the number of rows we could insert.
如果您註釋掉了索引il_01的建立,那麼指令碼很快就會完成(當然,抱怨嘗試使用null級別的樹轉儲(ORA-49100:處理事件語句失敗)。假
設你使用一個8kb塊大小旋轉計數查詢將顯示你有169行在一個塊和31行,如果你轉儲塊與169行你會發現(a)有負載的空白塊,和(b)ITL條
目的數量已經達到169,這是限制因素,限制我們可以插入的行數。
If you create the index then you'll have to wait roughly 142 seconds for the procedure call to fail (with an ORA-00060:
deadlock detected error) and the script to complete. And when you generate the tkprof output from the trace file you'll
find that most of the time is spent in the following statement:
如果您建立索引,那麼您將需要等待大約142秒才能使過程呼叫失敗(ORA-00060:死鎖檢測錯誤),並完成指令碼。當您從跟蹤檔案中生成
tkprof輸出時,您會發現大部分時間都花在了以下語句中:
--//跟蹤到最後如下,沒有記錄插入,全表回滾.
----- begin tree dump
leaf: 0x100136b 16782187 (0: nrow: 0 rrow: 0)
----- end tree dump
--//100136b = set dba 4,4971 = alter system dump datafile 4 block 4971 = 16782187
SYS@book> alter system dump datafile 4 block 4971;
System altered.
Block header dump: 0x0100136b
Object id on Block? Y
seg/obj: 0x50f2d csc: 0x03.1edec1e3 itc: 169 flg: E typ: 2 - INDEX
brn: 0 bdba: 0x1001368 ver: 0x01 opc: 0
inc: 0 exflg: 0
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x02 0xffff.000.00000000 0x00000000.0000.00 C--- 0 scn 0x0003.1edec1e3
0x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x04 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x05 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x06 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x07 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x08 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x09 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0a 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0b 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0c 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0d 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0e 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x0f 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x10 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x11 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x12 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x13 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x14 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x15 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x16 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x17 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x18 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x19 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1a 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1b 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1c 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1d 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1e 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x1f 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x20 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x21 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x22 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x23 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x24 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x25 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x26 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x27 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x28 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x29 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x2a 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x2b 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0x2c 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
...
0xa7 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0xa8 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
0xa9 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
--//a9 = 169
Leaf block dump
===============
header address 139944540256780=0x7f47609c3a0c
kdxcolev 0
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 1
kdxcosdc 0
kdxconro 0
kdxcofbo 36=0x24
kdxcofeo 4024=0xfb8
kdxcoavs 3988
kdxlespl 0
kdxlende 0
kdxlenxt 0=0x0
kdxleprv 0=0x0
kdxledsz 6
kdxlebksz 4024
*** dummy key ***
row#0[4014] flag: ------, lock: 2, len=10, data:(6): 01 00 13 65 00 00
col 0; len 1; (1): 80
----- end of leaf block dump -----
End dump data blocks tsn: 4 file#: 4 minblk 4971 maxblk 4971
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2857829/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20231027]Index ITL Limit 2.txtIndexMIT
- [20231027]Index ITL Limit 3.txtIndexMIT
- [20231031]Index ITL Limit 4.txtIndexMIT
- ITL
- oracle ITL槽Oracle
- 深入研究ITL阻塞與ITL死鎖 作者 piner
- 遭遇ITL死鎖
- ITL(Interested Transaction List)REST
- ITL的含義
- zt_ITL Cleanout和ITL中的事務狀態分析
- 推薦:深入研究ITL阻塞與ITL死鎖(轉載)
- 表的itl 屬性
- [20210315]acknowledge over PGA limit.txtMIT
- ITL與事務處理
- enq: TX - allocate ITL entryENQ
- TX:ITL LOCK(INITRANS,MAXINTRANS)
- ITL和Freelist的區別
- oracle ITL TX MODE 4問題Oracle
- ITL事務槽記載-01
- 從Dump資料塊看ITL
- KEEP INDEX | DROP INDEXIndex
- ITL:泰國移動電商的新模式模式
- Oracle ITL (Interested Transaction List) - 事務槽OracleREST
- oracle block資料塊itl小記OracleBloC
- 什麼是Interested Transaction List(ITL)--Oracle?RESTOracle
- rowid,index,INDEX FULL SCAN,INDEX FAST FULL SCAN|IndexAST
- INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCANIndexAST
- Clustered Index Scan and Clustered Index SeekIndex
- oracle hint之full,index,index_asc,index_desc,index_combile示例OracleIndex
- enq: TX - allocate ITL entry等待事件分析ENQ事件
- zt_Orace ITL(Interested Transaction List) 說明REST
- Segments by ITL Waits 問題及解決AI
- 從ITL到Undo前映象提取實驗
- ITL中xid 和 uba的驗證!
- IndexIndex
- Index的掃描方式:index full scan/index fast full scanIndexAST
- rebuild index 和 recreate index (重新建立index) 的區別RebuildIndex
- pk 、unique index 和 index 區別Index