[20220223]Index ITL Limit.txt

lfree發表於2022-02-25

[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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章