日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle B-Tree Index 原理

發布時間:2023/12/9 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle B-Tree Index 原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

. B-Tree Index 原理

官網說明:

?????? No index structure can satisfy all needs, but the self-balancing B-tree index comes closest to optimizing the performance of searches on large sets of data. Each B-tree node holds multiple keys and pointers. The maximum number of keys in a node supported by a specific B-tree is the order of that tree. Each node has a potential of order+1 pointers to the level below it.

?????? For example, the order=2 B-tree illustrated in Figure 7-1 has tree pointers: to child nodes whose value is less than the first key, to the child nodes whose value is greater than the first key and less than the second key, and to the child nodes whose value is greater than the second key. Thus, the B-tree algorithm minimizes the number of reads and writes necessary to locate a record by passing through fewer nodes than in a binary tree algorithm, which has only one key and at most two children for each decision node. Here we describe the Knuth variation in which the index consists of two parts: a sequence set that provides fast sequential access to the data, and an index set that provides direct access to the sequence set.

?????? Although the nodes of a B-tree generally do not contain the same number of data values, and they usually contain a certain amount of unused space, the B-tree algorithm ensures that the tree remains balanced and that the leaf nodes are at the same level.

?

?



?????? Oracle中的Btree Index具有3大結構,root節點,branch節點,leaf節點. Root節點始終緊跟索引段頭.? 當索引比較小的時候,root節點,branch節點,leaf節點都存儲在同一個block.

?

?????? Branch節點主要存儲了索引的鍵值,但是這個鍵值并不是完整的,它只是完整索引值的部分前綴.同時Branch節點還存儲了指向leaf節點的指針(DBA),另外有個主意的是branch節點中還有個叫kdxbrlmc的指針.

?

Oracle rdba dba 說明

http://blog.csdn.net/tianlesoftware/archive/2011/06/07/6529346.aspx

?

?????? Leaf節點主要存儲了完整的索引鍵值,以及相關索引鍵值的部分rowid(這個rowid去掉了data object number部分),同時leaf 節點還存儲了2個指針(DBA),他們分別指向上一個leaf節點以及下一個leaf節點.?

?

?????? Btree Index 是始終平衡的,也就是說 Root節點到 Leaf 節點的任何一個路徑都是等距離的.?

????? Btree Index 默認是按照索引值升序排列的,當然了我們可以在創建/重建的時候設置它降序排列.?

?

?????? Index Scan 的時候,采用的是 sequential read,并且一次只能讀一個block(INDEX FAST FULL SCAN 除外).??

?

?????? Btree Index Update 時候,先做的是 delete,然后進行insert.?

?

?????? Btree Index 不存儲 Null值,但是如果組合索引其中一列是非Null的,那么組合索引也會存儲Null.?

?

?

. Tree Index 存儲原理?

?

2.1 創建測試數據

SYS@anqing2(rac2)> select * from v$version where rownum=1;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

?

SYS@anqing2(rac2)> create table te as select * from? dba_objects;

Table created.

?

SYS@anqing2(rac2)> select count(*) from te;

? COUNT(*)

----------

?? 50258

?

SYS@anqing2(rac2)> insert into te select * from dba_objects;

50258 rows created.

?

SYS@anqing2(rac2)> commit;

Commit complete.

?

SYS@anqing2(rac2)> select count(*) from te;

? COUNT(*)

----------

??? 100516

?

SYS@anqing2(rac2)> create index idx_te_object_name on te(object_name);

Index created.

?

2.2 查看索引的Blevel, 可以通過DBA_INDEXES.Blevel獲得

*-Tree level: depth of the index from its root block to its leaf blocks. A depth of 0 indicates that the root block and leaf block are the same.?

?????? -- root block leaf block的深度. 如果root block leaf block在同一個塊中 那么 Blevel=0

?

SYS@anqing2(rac2)> select index_name,blevel from dba_indexes where index_name='IDX_TE_OBJECT_NAME';

INDEX_NAME???????????????????????? BLEVEL

------------------------------ ----------

IDX_TE_OBJECT_NAME????????????????????? 2

?

2.3 查看索引的height,索引的高度等于Blevel+1height可以通過INDEX_STATS獲得

?

SYS@anqing2(rac2)> select name,height from index_stats where name='IDX_TE_OBJECT_NAME';

no rows selected

--- index_stats需要 analyze ... validate structure 收集一下,否則無數據?

SYS@anqing2(rac2)>? analyze index IDX_TE_OBJECT_NAME validate structure;

Index analyzed.

SYS@anqing2(rac2)> select name,height from index_stats where name='IDX_TE_OBJECT_NAME';

NAME?????????????????????????????? HEIGHT

------------------------------ ----------

IDX_TE_OBJECT_NAME????????????????????? 3

?

?

2.4 dump index

?????? Oracle 提供了分析 Btree index 結構的命令 treedump,在進行treedump之前需要獲得索引的object_id

?

SYS@anqing2(rac2)> select object_id from dba_objects where object_name='IDX_TE_OBJECT_NAME' and owner='SYS';?

?OBJECT_ID

----------

???? 54769???

?

SYS@anqing2(rac2)> oradebug setmypid

Statement processed.

SYS@anqing2(rac2)> alter session set events 'immediate trace name treedump level 54769';?

Session altered.

?

SYS@anqing2(rac2)> oradebug tracefile_name

/u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

?

?

2.5 查看 treedump trace 文件?

[oracle@rac2 ~]$ cat /u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

/u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1

System name:??? Linux

Node name:????? rac2

Release:??????? 2.6.18-194.el5

Version:??????? #1 SMP Tue Mar 16 21:52:43 EDT 2010

Machine:??????? i686

Instance name: anqing2

Redo thread mounted by this instance: 2

Oracle process number: 29

Unix process pid: 3865, image: oracle@rac2 (TNS V1-V3)

?

*** 2011-06-27 13:15:00.375

*** ACTION NAME:() 2011-06-27 13:15:00.371

*** MODULE NAME:(sqlplus@rac2 (TNS V1-V3)) 2011-06-27 13:15:00.371

*** SERVICE NAME:(SYS$USERS) 2011-06-27 13:15:00.371

*** SESSION ID:(130.55497) 2011-06-27 13:15:00.371

----- begin tree dump

branch: 0x4117c2 4265922 (0: nrow: 2, level: 2)

?? branch: 0x412086 4268166 (-1: nrow: 250, level: 1)

??? ??leaf: 0x4117c3 4265923 (-1: nrow: 182 rrow: 182)

????? leaf: 0x4117c4 4265924 (0: nrow: 182 rrow: 182)

????? leaf: 0x4117c5 4265925 (1: nrow: 186 rrow: 186)

????? leaf: 0x4117c6 4265926 (2: nrow: 189 rrow: 189)

????? leaf: 0x4117c7 4265927 (3: nrow: 186 rrow: 186)

????? leaf: 0x4117c8 4265928 (4: nrow: 190 rrow: 190)

????? leaf: 0x4117c9 4265929 (5: nrow: 186 rrow: 186)

????? leaf: 0x4117ca 4265930 (6: nrow: 178 rrow: 178)

????? leaf: 0x4117cb 4265931 (7: nrow: 187 rrow: 187)

????? leaf: 0x4117cc 4265932 (8: nrow: 182 rrow: 182)

?? ??????? ......

????? leaf: 0x412080 4268160 (244: nrow: 222 rrow: 222)

????? leaf: 0x412081 4268161 (245: nrow: 201 rrow: 201)

????? leaf: 0x412082 4268162 (246: nrow: 240 rrow: 240)

????? leaf: 0x412083 4268163 (247: nrow: 226 rrow: 226)

????? leaf: 0x412084 4268164 (248: nrow: 211 rrow: 211)

?? branch: 0x41227b 4268667 (0: nrow: 245, level: 1)

????? leaf: 0x412085 4268165 (-1: nrow: 229 rrow: 229)

????? leaf: 0x412087 4268167 (0: nrow: 218 rrow: 218)

????? leaf: 0x412088 4268168 (1: nrow: 231 rrow: 231)

????? leaf: 0x412109 4268297 (2: nrow: 249 rrow: 249)

??? ??......

????? leaf: 0x412278 4268664 (241: nrow: 191 rrow: 191)

????? leaf: 0x412279 4268665 (242: nrow: 180 rrow: 180)

????? leaf: 0x41227a 4268666 (243: nrow: 56 rrow: 56)

----- end tree dump

?

?

2.6 解釋 treedump 輸出?

?????? branch 表示的是 branch block ,它后面跟了一個十六進制表示的DBA(data block address),以及用10進制表示的DBA

?????? DBA 之后表示在同一層次的相對位置(root 0開始,branch 以及leaf -1開始)?

?????? nrow? 表示塊中包含了多少條目(包括delete的條目)?

?????? rrow? 表示塊中包含的實際條目(不包括delete的條目)?

?????? level 表示從該blockleaf的深度(leaf沒有 level)?

?

2.6.1? branch: 0x4117c2 4265922 (0: nrow: 2, level: 2) 說明

?????? 這個 branch block level 2,也就是說 從這個branch block leaf block 的深度為2,根據前面的查詢,這個索引的Blevel2,所以這個branch其實是 root block. 其實根據 nrow:2 也可以看出來它是root block,因為nrow:2 說明它只包含了2個條目,那么這2個條目其實就是dump 文件中的其他2 branch block 的條目?

?

?????? 現在我來驗證一下 branch: 0x4117c2 4265922 (0: nrow: 2, level: 2) 是不是 root block , 我查詢這個 branch DBA

?

SYS@anqing2(rac2)> select dbms_utility.data_block_address_file('4265922') FILE_ID,? dbms_utility.data_block_address_block('4265922') BLOCK_ID from dual;

?

?? FILE_ID?? BLOCK_ID

---------- ----------

???????? 1????? 71618

?

Btree 索引的 root block總是segment header+1,所以我查詢該索引的段頭?

?

SYS@anqing2(rac2)> select header_file,header_block from dba_segments where segment_name='IDX_TE_OBJECT_NAME';?

?

HEADER_FILE HEADER_BLOCK

----------- ------------

????????? 1??????? 71617

?

?????? 那么現在已經證明了 branch: 0x4117c2 4265922 (0: nrow: 2, level: 2) root block, 其實 treedump第一個 branch block 就是 root block

?

?

2.6.2 ?branch: 0x412086 4268166 (-1: nrow: 250, level: 1)? 說明

?????? 這個branch DBA0x412086 (十六進制)4268166 (十進制) -1 表示它是與它在同一個深度的 branch block中的第一個 branch block?

?????? nrow: 250 :表示它有247 leaf block.

?????? level: 1 :表示 這個 branch block leaf block的深度為1?

?

2.6.3 leaf: 0x4117c3 4265923 (-1: nrow: 182 rrow: 182) ?說明

?????? leaf 表示它是一個 leaf block 0x4117c3 4265923 分別是這個 leaf block 十六進制/十進制的DBA.

?????? ?-1 表示它是 leaf block 中的第一個 block?

?????? nrow: 182 表示它一共有182條記錄

?????? rrow: 182 表示它實際有182條記錄?

?

?

2.7? branch block dump?

?????? 這里選擇dump branch: branch: 0x412086 4268166 (-1: nrow: 250, level: 1)

?

SYS@anqing2(rac2)> select dbms_utility.data_block_address_file('4268166') FILE_ID,? dbms_utility.data_block_address_block('4268166') BLOCK_ID from dual;?

?

?? FILE_ID?? BLOCK_ID

---------- ----------

???????? 1????? 73862

?

SYS@anqing2(rac2)> oradebug tracefile_name

/u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

-- 先清空一下

[oracle@rac2 ~]$ cat /dev/null > /u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

?

SYS@anqing2(rac2)> alter system dump datafile 1 block 73862;?

System altered.

?

2.7.1 部分 DUMP 文件?

[oracle@rac2 ~]$ cat /u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc? ??????????

*** 2011-06-27 14:35:54.038

Start dump data blocks tsn: 0 file#: 1 minblk 73862 maxblk 73862

buffer tsn: 0 rdba: 0x00412086 (1/73862)

scn: 0x0000.004e24ec seq: 0x02 flg: 0x04 tail: 0x24ec0602

frmt: 0x02 chkval: 0x3371 type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

Dump of memory from 0x0E707400 to 0x0E709400

E707400 0000A206 00412086 004E24EC 04020000? [..... A..$N.....]

......

E7093F0 00000000 00000000 00000000 24EC0602? [...............$]

Block header dump:? 0x00412086

?Object id on Block? Y

?seg/obj: 0xd5f1? csc: 0x00.4e24c9? itc: 1? flg: -? typ: 2 - INDEX

???? fsl: 0? fnx: 0x0 ver: 0x01

?

?Itl?????????? Xid????????????????? Uba???????? Flag? Lck??????? Scn/Fsc

0x01?? 0xffff.000.00000000? 0x00000000.0000.00? C---??? 0? scn 0x0000.004e24c9

?

Branch block dump

=================

header address 242250820=0xe707444

kdxcolev 1

KDXCOLEV Flags = - - -

kdxcolok 0

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y

kdxconco 2

kdxcosdc 0

kdxconro 249

kdxcofbo 526=0x20e

kdxcofeo 557=0x22d

kdxcoavs 31

kdxbrlmc 4265923=0x4117c3

kdxbrsno 0

kdxbrbksz 8056

kdxbr2urrc 0

?

row#0[8023] dba: 4265924=0x4117c4

col 0; len 24; (24):

?2f 31 30 64 65 32 32 63 36 5f 43 6c 61 73 73 54 79 70 65 49 6d 70 6c 32

col 1; len 3; (3):? 00 41 1b

row#1[7984] dba: 4265925=0x4117c5

col 0; len 30; (30):

?2f 31 31 64 35 30 39 31 32 5f 44 61 74 65 46 6f 72 6d 61 74 5a 6f 6e 65 44

?61 74 61 5f 7a

col 1; len 3; (3):? 00 41 1c

row#2[7973] dba: 4265926=0x4117c6

col 0; len 5; (5):? 2f 31 32 61 32

col 1; TERM

row#3[7931] dba: 4265927=0x4117c7

col 0; len 30; (30):

?2f 31 33 38 35 32 32 37 66 5f 4d 61 70 52 65 67 69 6f 6e 43 6f 6e 74 61 69

?6e 6d 65 6e 74

col 1; len 6; (6):? 00 41 18 d5 00 08

......

row#247[571] dba: 4268163=0x412083

col 0; len 6; (6):? 41 4c 4c 5f 45 56

col 1; TERM

row#248[557] dba: 4268164=0x412084

col 0; len 8; (8):? 41 4c 4c 5f 4d 50 5f 50

col 1; TERM

----- end of branch block dump -----

End dump data blocks tsn: 0 file#: 1 minblk 73862 maxblk 73862

[oracle@rac2 ~]$

?

?

2.7.2解釋部分dump輸出?

?

kdxcolev 1? --blockleaf block的深度(leaf block 0).這里branch block level 1 與前面查詢相吻合??

KDXCOLEV Flags = - - -?

kdxcolok 0? --表示是否有事務lock了這個branch block,如果有,有多少事務?

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y?

kdxconco 2? --索引值條目. 這里表示有2個條目?

kdxcosdc 0? --這個block的結構被更改次數.這里0表示沒有更改?

kdxconro 249 --索引條目(不包含kdxbrlmc 指針)?

kdxcofbo 526=0x20e? --空閑空間的起始偏移量

kdxcofeo 557=0x22d? --空閑空間的末尾偏移量

kdxcoavs 31? --block中的空閑空間=kdxcofeo-kdxcofbo?

kdxbrlmc 4265923=0x4117c3 --如果index value小于row#0,指向該 block 的地址?

kdxbrsno 0?? --最后被更改的索引條目?

kdxbrbksz 8056 --塊中的可用空間?

kdxbr2urrc 0?

?

row#0[8023] dba: 4265924=0x4117c4 --row# 表示索引條目數,從0開始,緊接著就是十進制和十六進制的DBA,該DBA指向 leaf block?

?

col 0; len 24; (24): --列的行號,從0開始,緊接著的就是列的長度以及列的值,那么這個值稱之為separator key,這個separator key 可以區分真實的索引值,所以從這里我們也知道 branch block不會存儲完整的索引值,只要能區分就行?

?

?2f 31 30 64 65 32 32 63 36 5f 43 6c 61 73 73 54 79 70 65 49 6d 70 6c 32

col 1; len 3; (3):? 00 41 1b

?

?

2.8 ?leaf block DUMP?

?????? 這里選擇 row#247[571] dba: 4268163=0x412083, 因為它包含的索引鍵很少?

?

row#247[571] dba: 4268163=0x412083

col 0; len 6; (6):? 41 4c 4c 5f 45 56

col 1; TERM

?

dump 之前先看一下? row#247[571] 存儲的 ' 41 4c 4c 5f 45 56' 是什么索引鍵. 使用如下代碼轉換:

?

SQL> set serveroutput on

?

/* Formatted on 2011/6/27 16:53:27 (QP5 v5.163.1008.3004) */

DECLARE

?? n?? VARCHAR2 (2000);

BEGIN

?? DBMS_STATS.convert_raw_value ('41', n);

?? DBMS_OUTPUT.put_line (n);

?? DBMS_STATS.convert_raw_value ('4c', n);

?? DBMS_OUTPUT.put_line (n);

?? DBMS_STATS.convert_raw_value ('4c', n);

?? DBMS_OUTPUT.put_line (n);

?? DBMS_STATS.convert_raw_value ('5f', n);

?? DBMS_OUTPUT.put_line (n);

?? DBMS_STATS.convert_raw_value ('45', n);

?? DBMS_OUTPUT.put_line (n);

?? DBMS_STATS.convert_raw_value ('46', n);

?? DBMS_OUTPUT.put_line (n);

END;

?

這個鍵值代表:

A

L

L

_

E

F

?

-- 查看file_id block_id

SYS@anqing2(rac2)> select dbms_utility.data_block_address_file('4268163') FILE_ID,???? dbms_utility.data_block_address_block('4268163')? BLOCK_ID from dual;?

?

?? FILE_ID?? BLOCK_ID

---------- ----------

?????? ??1????? 73859

?

SYS@anqing2(rac2)> alter system dump datafile 1 block 73859;?

System altered.

?

SYS@anqing2(rac2)> oradebug tracefile_name

/u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

?

2.8.1 部分DUMP文件?

?

[oracle@rac2 ~]$ cat /u01/app/oracle/admin/anqing/udump/anqing2_ora_3865.trc

*** 2011-06-27 17:00:01.805

Start dump data blocks tsn: 0 file#: 1 minblk 73859 maxblk 73859

buffer tsn: 0 rdba: 0x00412083 (1/73859)

scn: 0x0000.004e24ec seq: 0x02 flg: 0x04 tail: 0x24ec0602

frmt: 0x02 chkval: 0xb42b type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

Dump of memory from 0x0E707400 to 0x0E709400

E707400 0000A206 00412083 004E24EC 04020000? [..... A..$N.....]

......

E7093F0 00000000 00000000 00000000 24EC0602? [...............$]

Block header dump:? 0x00412083

?Object id on Block? Y

?seg/obj: 0xd5f1? csc: 0x00.4e24c9? itc: 2? flg: -? typ: 2 - INDEX

???? fsl: 0? fnx: 0x0 ver: 0x01

?

?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 0x0000.004e24c9

?

Leaf block dump

===============

header address 242250844=0xe70745c

kdxcolev 0

KDXCOLEV Flags = - - -

kdxcolok 0

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y

kdxconco 2

kdxcosdc 0

kdxconro 226

kdxcofbo 488=0x1e8

kdxcofeo 1324=0x52c

kdxcoavs 836

kdxlespl 0

kdxlende 0

kdxlenxt 4268164=0x412084

kdxleprv 4268162=0x412082

kdxledsz 0

kdxlebksz 8032

row#0[7999] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 45 56 41 4c 55 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 53

col 1; len 6; (6):? 00 41 1a 71 00 2a

row#1[7966] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 45 56 41 4c 55 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 53

col 1; len 6; (6):? 00 41 1a 71 00 2b

row#2[7933] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 45 56 41 4c 55 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 53

col 1; len 6; (6):? 00 43 eb 77 00 3d

......

row#224[1357] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 4d 50 5f 47 52 41 50 48 5f 57 4f 52 4b 53 50 41 43 45 53

col 1; len 6; (6):? 00 41 1a ad 00 18

row#225[1324] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 4d 50 5f 47 52 41 50 48 5f 57 4f 52 4b 53 50 41 43 45 53

col 1; len 6; (6):? 00 41 1a ad 00 19

----- end of leaf block dump -----

End dump data blocks tsn: 0 file#: 1 minblk 73859 maxblk 73859

[oracle@rac2 ~]$

?

?

2.8.2 解釋部分dump輸出

kdxcolev 0? --blockleaf block的深度(leaf block 0).?

KDXCOLEV Flags = - - -?

kdxcolok 0?? --表示是否有事務lock了這個branch block,如果有 有多少事務?

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y?

kdxconco 2?? --索引值條目. 這里表示有2個條目?

kdxcosdc 0?? --這個block的結構被更改次數.這里0表示沒有更改?

kdxconro 226 ??--索引條目 ,這里有189個索引條目 它等于 row#225-row#0+1?

kdxcofbo 488=0x1e8? --空閑空間的起始偏移量?

kdxcofeo 1324=0x52c ?--空閑空間的末尾偏移量?

kdxcoavs 836??????? --block中的空閑空間=kdxcofeo-kdxcofbo?

kdxlespl 0?? --block split的時候沒有commit的記錄的大小(byte)?

kdxlende 0?? --被刪除的條目?

kdxlenxt 4268164=0x412084 --指向下一個 leaf block的指針(DBA)?

kdxleprv 4268162=0x412082 --指向上一個 leaf block的指針(DBA)?

kdxledsz 0?? --被刪除的空間?

kdxlebksz 8032 --可用空間?

?

?

row#0[7999] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 45 56 41 4c 55 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 53

col 1; len 6; (6):? 00 41 1a 71 00 2a

?

row# 表示索引值的條目,從0開始? lock: 0 表示ITL中的鎖信息 0表示沒有被鎖 len=33 表示索引值長度?

col 表示列號,從0開始 那么接下來就是索引的鍵值 以及 rowid中后23位值。

?????? 即:col 0 是鍵值, col 1 rowid

?

下面我們來看一下row#0存儲的值是什么 ,先看col 0的鍵值:

?

SYS@anqing2(rac2)> declare n varchar2(2000);?

? 2? begin?

? 3? dbms_stats.convert_raw_value('414c4c5f4556414c554154494f4e5f434f4e5445585453',n);?

? 4? dbms_output.put_line(n);?

? 5? end;?

? 6? /?

ALL_EVALUATION_CONTEXTS

?

查看col1 rowid 的值:

ROWID一共用18位表示 :

?????? 最前6位表示 data object number?

?????? 之后后3位表示 datafile number?

?????? 之后后6位表示 datablock number?

?????? 最后3位表示 row number?

?

有關rowid 更多內容,參考Blog

?????? Oracle Rowid 介紹

?????? http://blog.csdn.net/tianlesoftware/archive/2009/12/16/5020718.aspx

?

SYS@anqing2(rac2)> select to_number('00411a71','xxxxxxxxxxxxxxxx') from dual; ?

TO_NUMBER('00411A71','XXXXXXXXXXXXXXXX')

----------------------------------------

????????????? 4266609?

?

?????? 這里的rowid其實是除去了 data object number的一部分而已。 col 16位中的前4位。

?

SYS@anqing2(rac2)> select dbms_utility.data_block_address_file('4266609') FILE_ID,dbms_utility.data_block_address_block('4266609') BLOCK_ID from dual;?

?

?? FILE_ID?? BLOCK_ID

---------- ----------

???????? 1????? 72305?

?

SYS@anqing2(rac2)> select dbms_rowid.rowid_relative_fno(rowid)file_id, dbms_rowid.rowid_block_number(rowid)block_id,dbms_rowid.rowid_row_number(rowid) row#? from te where object_name='ALL_EVALUATION_CONTEXTS';?

?

?? FILE_ID?? BLOCK_ID?????? ROW#

---------- ---------- ----------

???????? 1????? 72305?????? ??42

???????? 1????? 72305???????? 43

???????? 1???? 256887???????? 61

???????? 1???? 256887???????? 62?

?

?

根據這個還原的值我來查詢一下?

?

SYS@anqing2(rac2)> select owner,object_name,rowid from te where object_name='ALL_EVALUATION_CONTEXTS';?

?

OWNER????? OBJECT_NAME?????????????? ROWID

---------- ------------------------- ------------------

SYS??????? ALL_EVALUATION_CONTEXTS?? AAANXwAABAAARpxAAq

PUBLIC???? ALL_EVALUATION_CONTEXTS?? AAANXwAABAAARpxAAr

SYS??????? ALL_EVALUATION_CONTEXTS?? AAANXwAABAAA+t3AA9

PUBLIC???? ALL_EVALUATION_CONTEXTS?? AAANXwAABAAA+t3AA+

?

?

SYS@anqing2(rac2)> select owner,object_name,dump(rowid,16) from te where object_name='ALL_EVALUATION_CONTEXTS';?

?

OWNER????? OBJECT_NAME?????????????? DUMP(ROWID,16)

---------- ------------------------- -------------------------------------------

SYS????? ALL_EVALUATION_CONTEXTS?? Typ=69 Len=10: 0,0,d5,f0,0,41,1a,71,0,2a

PUBLIC???? ALL_EVALUATION_CONTEXTS?? Typ=69 Len=10: 0,0,d5,f0,0,41,1a,71,0,2b

SYS??????? ALL_EVALUATION_CONTEXTS?? Typ=69 Len=10: 0,0,d5,f0,0,43,eb,77,0,3d

PUBLIC???? ALL_EVALUATION_CONTEXTS?? Typ=69 Len=10: 0,0,d5,f0,0,43,eb,77,0,3e?

?

?

在看一下,在2.8節開始的branch block 信息:

row#247[571] dba: 4268163=0x412083

col 0; len 6; (6):? 41 4c 4c 5f 45 56

col 1; TERM

?

其中col 0,我們轉換之后是:ALL_EF,由此可見,col 0 是真正的索引鍵的前綴。

?

它是每個具體鍵值的前一部分,即col0 的一部分。 如:

?

row#0[7999] flag: ------, lock: 0, len=33

col 0; len 23; (23):

?41 4c 4c 5f 45 56 41 4c 55 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 53

col 1; len 6; (6):? 00 41 1a 71 00 2a

?

?????? Oracle Branch block中只記錄 索引鍵值的前綴,而不是所有值,是因為這樣可以節約空間,從而能夠存儲更多的 索引條目。

?????? 同時,我們也能理解了為什么 查詢使用 like '%xxx' 這種方法不會走Btree 索引,因為Branch block 存儲的是前綴. ?

?

?

?

說明:

?????? 根據robinson blog,重新做的測試,原文鏈接如下:

?????? http://blog.csdn.net/robinson1988/archive/2011/01/04/6116276.aspx

?

?

?

?

?

-------------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿);?? DBA2 群:62697977(滿)?? DBA3 群:62697850(滿)??

DBA 超級群:63306533(滿);? DBA4 群: 83829929? DBA5群: 142216823???

DBA6 群:158654907? 聊天 群:40132017?? 聊天2群:69087192

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

?

轉載于:https://www.cnblogs.com/hibernate315/archive/2011/06/27/2399002.html

總結

以上是生活随笔為你收集整理的Oracle B-Tree Index 原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

1000部18岁以下禁看视频 | 五月情婷婷 | 欧美了一区在线观看 | 综合激情婷婷 | 久久久久亚洲精品国产 | 免费亚洲黄色 | 精品电影一区 | 免费在线黄色av | 日韩乱色精品一区二区 | 欧美高清视频不卡网 | 日韩免费一区二区三区 | 97视频在线播放 | 欧美一级电影片 | 日本精品免费看 | 色综合天天狠天天透天天伊人 | av大全在线免费观看 | 日本精品视频网站 | 精品福利国产 | aaa日本高清在线播放免费观看 | 国产免费黄视频在线观看 | 欧美日韩国产亚洲乱码字幕 | 综合久久久| 精品无人国产偷自产在线 | 激情视频亚洲 | 国产福利在线免费 | 婷婷丁香花五月天 | 一级免费黄视频 | 欧美aa一级片 | 国产一级二级av | 欧美精品生活片 | 成人禁用看黄a在线 | 综合久久久久久久久 | 97视频免费看 | 久久久久在线视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | av五月婷婷 | 一区二区三区免费播放 | 中文字幕乱码电影 | 97精产国品一二三产区在线 | 二区三区精品 | 射九九| 香蕉网站在线观看 | 久久a热6 | 亚洲综合精品在线 | 欧美人zozo | 中文字幕日韩伦理 | 91在线小视频| 欧美精品一区在线 | 国产一区免费看 | 国产伦理一区二区三区 | 精品视频免费看 | 国产精品一区二区久久久 | 成人久久18免费网站麻豆 | 91av网站在线观看 | 99免费在线观看 | 亚洲网久久 | 中午字幕在线观看 | 色99视频 | 成人在线视频免费观看 | 在线成人av| 成 人 黄 色 视频免费播放 | 久草资源免费 | 欧美激情综合五月色丁香 | 国产精品久久久久永久免费看 | 欧美成人日韩 | 伊人网av | 久久99久久久久久 | 天天射天天操天天色 | 国产综合精品一区二区三区 | 国产黄色电影 | 免费观看十分钟 | 超碰在线免费97 | 国产污视频在线观看 | 午夜精品久久久久久久久久久 | 欧美在线视频一区二区 | 国产亚洲日本 | 蜜臀av网址 | 亚洲激情p | 婷婷丁香九月 | 国产视频精品久久 | 伊人视频 | 午夜91视频| 国产精品成久久久久三级 | 黄色国产在线 | 欧美精品一区二区性色 | 成人免费在线视频 | 国产精品成人一区 | 久久字幕 | 在线观看国产高清视频 | 在线看国产视频 | 国内精品久久影院 | 探花国产在线 | 麻豆精品视频在线观看免费 | 九九九九色 | 国产毛片在线 | www.国产在线| 精品久久久久国产 | 国产一二区精品 | 久久露脸国产精品 | 蜜桃av久久久亚洲精品 | 国产精品福利在线 | 色婷婷综合久久久久 | 欧美人牲 | 久久精品99北条麻妃 | 欧美性生活一级片 | 国产一级精品在线观看 | 国产精品99久久久久久大便 | 激情综合色综合久久综合 | 黄色成品视频 | 97碰碰精品嫩模在线播放 | 久久国产精品一国产精品 | 精品视频不卡 | 成人av网址大全 | 永久免费观看视频 | 欧美大荫蒂xxx | 国产亚洲精品中文字幕 | 国产无套一区二区三区久久 | 五月婷婷综合激情网 | 国产理论一区二区三区 | 久久免费99精品久久久久久 | 国产一区二区视频在线播放 | 亚洲精品在线看 | 久久久久久久电影 | www.天天综合 | 国产91精品一区二区 | 99热99re6国产在线播放 | 亚洲午夜精 | 啪啪凸凸 | 精品亚洲男同gayvideo网站 | 九九九九精品九九九九 | 444av| 成人av网站在线观看 | 六月丁香在线观看 | 欧美日韩不卡一区二区三区 | 国产一级电影 | 麻豆视频国产精品 | 亚洲黄色精品 | 国产综合福利在线 | 亚洲一级电影 | 国产一级二级在线播放 | 欧美 亚洲 另类 激情 另类 | 激情五月婷婷综合 | 久久久久久激情 | 日韩精品视频免费在线观看 | 久久精品一级片 | av高清在线 | 亚洲国产免费网站 | 国产高清在线看 | 国产网红在线观看 | 九九亚洲精品 | 色噜噜在线观看 | 色欲综合视频天天天 | 亚洲电影第一页av | 亚洲欧洲日韩在线观看 | 波多野结衣在线播放一区 | 亚洲欧美色婷婷 | 国产亚洲片 | 亚洲国产一区二区精品专区 | 久久午夜色播影院免费高清 | 天堂av在线网 | 亚洲一区精品人人爽人人躁 | 五月婷婷丁香网 | 久久国产经典视频 | 久久久久免费网 | 91视频传媒 | 人人超在线公开视频 | 亚洲精品激情 | 91福利视频一区 | 日韩网站免费观看 | 高清av免费看 | 国产精品视频专区 | 国产精品久久久久久久免费大片 | 91精品国产高清自在线观看 | aaa日本高清在线播放免费观看 | 99久久婷婷国产一区二区三区 | 9i看片成人免费看片 | 日本精品视频在线观看 | 蜜臀aⅴ国产精品久久久国产 | 麻豆久久精品 | 夜夜高潮夜夜爽国产伦精品 | 欧美人牲 | 日日日爽爽爽 | 嫩草伊人久久精品少妇av | 97国产精品 | 精品国产一区二区三区四区在线观看 | 成人av一区二区在线观看 | 岛国av在线 | 91精品啪在线观看国产81旧版 | 国产精品白虎 | 日韩精品一区二区在线观看视频 | 五月激情电影 | 在线观看黄网站 | av资源免费观看 | 色婷婷免费视频 | 肉色欧美久久久久久久免费看 | 黄色综合 | 欧美动漫一区二区三区 | 69国产精品成人在线播放 | 精品亚洲欧美一区 | 综合色中色 | 中文字幕av在线电影 | 久久激情五月丁香伊人 | 久久久免费毛片 | 国产精品粉嫩 | 美女激情影院 | 91精品视频在线看 | www欧美xxxx | 久久精品国产一区二区三区 | 国产成人黄色在线 | 国产高清av免费在线观看 | 色射爱 | 国产中年夫妇高潮精品视频 | 亚洲精品中文字幕视频 | 香蕉视频导航 | 国产精品久久久久免费观看 | 91精品婷婷国产综合久久蝌蚪 | 久久久国内精品 | 欧美视频99| 久久久久久久免费看 | 久久国内免费视频 | 亚洲精品在线观看中文字幕 | 深爱激情av| 亚洲视频一区二区三区在线观看 | 国产精品久久久久av福利动漫 | 丁香花在线观看免费完整版视频 | 97狠狠操| 深夜国产在线 | 久久精品亚洲精品国产欧美 | 亚洲欧洲av | 人人草网站 | 日韩免费电影 | 欧美精品在线一区二区 | 久久婷亚洲五月一区天天躁 | 久久色在线观看 | 免费在线一区二区 | 中文字幕av电影下载 | 国产大陆亚洲精品国产 | 欧美日韩性视频 | 久久国产成人午夜av影院宅 | 欧洲一区二区在线观看 | 国产精品 9999 | 亚洲va男人天堂 | adn—256中文在线观看 | 色综合五月 | 日韩三级免费 | 国产亚洲精品无 | 成人午夜av电影 | 热久在线 | 国内成人精品视频 | 欧美婷婷综合 | 西西4444www大胆无视频 | 91精品久久久久久久91蜜桃 | 九九视频免费观看视频精品 | 国产日本亚洲高清 | 国产精品一区二区在线观看 | 久九视频| 在线天堂中文在线资源网 | 韩国av电影在线观看 | 中文字幕在线观看网站 | 国产精品久久久久久欧美 | 91av视频| 久久亚洲专区 | 久久视频这里只有精品 | 亚洲天堂网在线播放 | 成人国产精品免费观看 | 日韩在线理论 | 国产精品久久人 | 久99久中文字幕在线 | 欧美日韩国产高清视频 | 在线观看的av | 色婷婷狠狠干 | 欧美狠狠操 | 日韩欧美在线一区二区 | 婷婷色影院 | 国产又粗又猛又黄 | 超碰日韩在线 | 日日操夜夜操狠狠操 | 国产小视频在线免费观看视频 | 亚洲一级影院 | 国内精品久久久久久久影视简单 | 激情开心站| 三级av在线 | 免费看片亚洲 | 国产在线播放观看 | 婷婷中文字幕 | 一级成人免费 | 日韩久久精品一区二区 | 中文字幕色婷婷在线视频 | av天天色 | 91成年视频 | 69国产精品视频免费观看 | 精品av网站 | 久久中文精品视频 | 日本午夜免费福利视频 | 国产精品18毛片一区二区 | 日韩二区三区在线观看 | 免费观看日韩 | 91在线九色| 又黄又爽又色无遮挡免费 | 日日干干夜夜 | 超碰在线98 | 亚洲精品色婷婷 | 国产色婷婷 | 日本女人的性生活视频 | 911久久香蕉国产线看观看 | 99麻豆久久久国产精品免费 | 亚洲视频久久久久 | 国产一级片免费播放 | 中文字幕在线免费97 | 国产精品日韩久久久久 | 日韩簧片在线观看 | 麻豆视频www | 精品国产一区二区三区日日嗨 | 久久久国产电影 | 国产一区二区精品在线 | www.888av| 免费av的网站 | 久久久久国产成人精品亚洲午夜 | japanese黑人亚洲人4k | 婷婷九月丁香 | 精品视频9999 | 国产精品免费观看在线 | 亚洲一级电影 | 最近2019年日本中文免费字幕 | 一区二区三区视频网站 | 92国产精品久久久久首页 | 日韩免费电影一区二区 | 国产无遮挡又黄又爽馒头漫画 | 亚洲女人av | 27xxoo无遮挡动态视频 | 夜夜躁日日躁狠狠久久av | 成人av在线观 | 涩涩资源网 | 久久在线精品视频 | 亚洲欧美日韩国产一区二区 | 欧美日韩国产精品爽爽 | 免费激情在线电影 | 激情片av| 精品国产一区二区三区久久 | 精品一二三区视频 | 亚洲欧洲中文日韩久久av乱码 | 国产精品成人aaaaa网站 | 在线不卡a | 99久久这里有精品 | 97看片网 | 人人添人人澡人人澡人人人爽 | 日韩欧美在线免费观看 | 亚洲一区网 | 久久精品福利 | 欧美中文字幕久久 | 亚洲欧美成人在线 | 久久夜色精品国产欧美乱极品 | 色欧美88888久久久久久影院 | 日韩毛片精品 | 丁香一区二区 | 国产亚洲成av人片在线观看桃 | 国产九九热视频 | 香蕉视频4aa| 久久免费看毛片 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 亚洲精品视频 | 成人av在线播放网站 | 久久视屏网 | 国产精品久久久久aaaa九色 | 国产视频一区在线免费观看 | 天天爽天天射 | 精品在线视频观看 | 日日碰夜夜爽 | 一区二区三区四区久久 | 成人av高清在线 | 日韩午夜在线 | 久久99久久99精品中文字幕 | 成人播放器| 91爱爱中文字幕 | av中文在线观看 | 成人久久18免费网站图片 | 97在线看片 | 久久天天躁夜夜躁狠狠躁2022 | 国产精品第二十页 | 成人啪啪18免费游戏链接 | 亚州精品天堂中文字幕 | 国产999免费视频 | 久久99热精品这里久久精品 | 黄色软件大全网站 | 久久黄色片 | 伊人五月天av | 久久久久观看 | 四虎在线观看网址 | 国产裸体bbb视频 | 欧美视频国产视频 | 欧美极品xxxxx | 国产精品丝袜 | 九九亚洲视频 | 91色在线观看 | 在线97| 亚洲欧美日韩一区二区三区在线观看 | 国产精品99久久久久久人免费 | 奇米影视8888在线观看大全免费 | 亚洲欧洲成人 | 久久亚洲私人国产精品va | 五月婷丁香网 | 亚洲精品动漫在线 | 免费精品在线 | 人人澡人人爱 | 一级黄色在线视频 | 超碰人人在线观看 | 天天爽网站 | 91视频xxxx| 激情五月六月婷婷 | 成年人在线免费视频观看 | 九九久久久久久久久激情 | 国产在线精品一区二区三区 | 国产精品成人免费精品自在线观看 | 国产精品一区在线观看 | 人人爱天天操 | 欧美日韩亚洲第一 | 黄色一级动作片 | 青青久草在线 | 国产精品久久久久久久久久了 | 日本中文字幕网 | 久久av不卡| 狠狠狠色丁香婷婷综合久久88 | 国产一区二区不卡视频 | 麻豆精品传媒视频 | 中文字幕在线观看完整版 | 久久国产精品99精国产 | 欧美成人日韩 | 日韩a在线观看 | 欧美日韩一区二区三区在线观看视频 | 国产精品成人一区二区三区吃奶 | 99久久久国产精品免费观看 | 国产精品久久中文字幕 | 日本中文字幕系列 | 成人禁用看黄a在线 | www.狠狠操 | 久久成人在线视频 | 国产精品永久久久久久久久久 | 国产三级午夜理伦三级 | 国产成人精品一区在线 | 免费看污在线观看 | 日本黄色一级电影 | 久久这里只有精品久久 | 亚洲精品中文字幕视频 | av在线a| 亚洲精品资源在线 | 中文字幕最新精品 | 黄色一级大片免费看 | 九九九热精品 | 午夜精品一区二区三区在线视频 | 免费午夜网站 | 色综合久久久久综合体桃花网 | 色丁香婷婷 | 天天综合91| 天天射射天天 | 免费看的国产视频网站 | 婷婷在线视频 | 在线观看av中文字幕 | 午夜精品中文字幕 | 精品视频亚洲 | 国产午夜精品av一区二区 | 99久久精品国产欧美主题曲 | 亚洲三级国产 | 亚洲精品中文字幕视频 | 精品96久久久久久中文字幕无 | 亚洲最新精品 | 精品国产精品久久一区免费式 | 成人精品一区二区三区中文字幕 | 国产精品96久久久久久吹潮 | 91大神在线观看视频 | 亚洲精品在线视频观看 | 精品人人人 | 国产香蕉97碰碰久久人人 | 精品国产乱子伦一区二区 | 国产香蕉视频在线观看 | 96国产在线| 伊人午夜视频 | 国产精品电影一区二区 | 久久中文欧美 | 黄色视屏在线免费观看 | 在线免费av网站 | 成人av影视在线 | 色九九在线 | 国产精品99视频 | 欧美亚洲xxx | 色在线免费视频 | 欧美一区成人 | 美女免费av| 国产一区免费在线 | 久艹视频在线免费观看 | 亚洲欧洲av在线 | 成人av片在线观看 | 天堂中文在线视频 | 亚洲丝袜一区二区 | 九九热在线播放 | 久久成人18免费网站 | 激情网在线视频 | 中文字幕av在线 | 国产成人久久av免费高清密臂 | 国产精品69久久久久 | 精品理论片 | 国产精品美女999 | 亚洲综合精品在线 | www.久久久久 | 国产精品9999久久久久仙踪林 | 欧美精品久久久久久久久久丰满 | 麻豆91网站| 国产精品久久久久久久久久久久久久 | 日色在线视频 | 国产夫妻自拍av | 日韩免费在线观看视频 | 欧美一区二区三区四区夜夜大片 | 91资源在线播放 | 国产午夜精品在线 | 中文字幕免费久久 | 福利视频一区二区 | 91精品办公室少妇高潮对白 | 欧美吞精 | 色噜噜狠狠色综合中国 | 国产精美视频 | 在线 欧美 日韩 | 亚洲精品视频二区 | 日本中文字幕电影在线免费观看 | 成人黄在线 | 久久字幕网| 亚洲综合视频在线 | 天天插综合网 | 日韩在线国产精品 | 国产99re| 国产精品视频app | 五月天丁香亚洲 | 国产一级片视频 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 五月激情久久久 | 久久五月精品 | 高清不卡一区二区三区 | 久久毛片网站 | 超碰在线色 | 欧美a级片网站 | 81国产精品久久久久久久久久 | 精品久操 | 久草影视在线观看 | 久久免费的精品国产v∧ | 五月宗合网 | 安徽妇搡bbbb搡bbbb | 免费在线国产视频 | 西西大胆免费视频 | 久久99精品久久只有精品 | 日本亚洲国产 | h网站免费在线观看 | 久久精品国产一区二区电影 | 2024国产在线 | 最新日韩在线观看视频 | 免费黄色在线播放 | 日韩a免费 | 国模精品在线 | 国产免费视频在线 | 久久精品国产免费看久久精品 | 国产福利在线免费观看 | 久久er99热精品一区二区三区 | 一区二区三区在线不卡 | 欧美在线观看视频一区二区三区 | 国产盗摄精品一区二区 | 国产丝袜 | 久久成人国产精品一区二区 | 欧美另类重口 | 亚洲免费观看视频 | 综合国产在线观看 | 伊人久久一区 | 国产一级高清视频 | 中文字幕资源网在线观看 | 激情五月婷婷综合网 | 日韩欧美在线影院 | 亚洲精品观看 | 免费成人在线网站 | 日av免费 | 日韩久久久久久久久久久久 | 天天综合区 | 色综合久久久久久中文网 | 午夜色性片 | 日韩av成人 | 亚洲小视频在线观看 | 天天透天天插 | 久久免费福利视频 | 国产成人免费高清 | 最近免费在线观看 | 久久99久久精品国产 | 国产一区二区三区高清播放 | 国产免费叼嘿网站免费 | 久久综合狠狠狠色97 | 97超视频免费观看 | 亚洲一区二区观看 | 五月婷婷一区 | 日韩一二三区不卡 | 久久视频网 | 中文字幕av免费 | 国产精品成人一区二区三区吃奶 | 亚洲国产精品第一区二区 | 精品99免费| 欧美另类xxxxx | 黄色a级片在线观看 | 亚洲欧美激情精品一区二区 | 国产一级片观看 | 亚洲h色精品| 午夜 免费 | 久久免费观看少妇a级毛片 久久久久成人免费 | 久久999精品 | 91麻豆精品国产91久久久久 | 中文字幕在线视频一区 | 久久免费视频一区 | 91成人在线观看高潮 | 日韩欧美在线高清 | 国产精品第二十页 | 97视频在线观看成人 | 韩国av免费观看 | 日本中文字幕在线电影 | 五月婷婷六月丁香在线观看 | 99热国产在线观看 | 日韩视频在线观看视频 | 国产精品亚洲视频 | 欧美孕交vivoestv另类 | 涩涩成人在线 | 五月天婷亚洲天综合网精品偷 | av中文字幕在线电影 | 国产高清在线 | 亚洲视频电影在线 | 免费看的黄色网 | 日韩在线播放欧美字幕 | www好男人 | 欧美激情视频一二三区 | 日韩久久精品一区二区三区下载 | 国产二级视频 | 国产剧情av在线播放 | 91传媒视频在线观看 | 日韩网站在线播放 | 色欧美日韩| 人人爱夜夜操 | 在线免费观看一区二区三区 | 天天操天天干天天 | 91精品在线观看视频 | 国产精品国产亚洲精品看不卡15 | 亚洲黄色软件 | 久久精国产 | 国产人免费人成免费视频 | 亚洲日本欧美 | 精品视频一区在线观看 | 婷婷开心久久网 | 国产一级二级三级在线观看 | 天天色播 | 久久国产精品一区二区三区四区 | 国产精品日韩久久久久 | 成人国产精品一区 | 国产在线视频一区二区 | av一级免费| 91精品久久久久久综合乱菊 | 色视频网站免费观看 | 久久久久久黄色 | 国产最新在线 | 日本美女xx | 欧美日本不卡高清 | 在线看日韩| 免费高清无人区完整版 | 国产三级国产精品国产专区50 | 91超碰免费在线 | 日韩av一区二区三区四区 | 在线观看黄网 | 叶爱av在线| 免费人做人爱www的视 | 久久综合九色综合97_ 久久久 | 精品自拍sae8—视频 | 亚洲精品国产拍在线 | 国产一区二区精 | 中文在线免费视频 | 91资源在线视频 | 色婷婷九月 | 午夜视频日本 | 午夜精品久久久久久久99热影院 | www激情久久| 黄色片免费在线 | 精品国产中文字幕 | 天天射射天天 | 免费观看性生活大片 | 99久久成人 | 亚洲一级特黄 | 久久在线看 | 久久黄页 | 99精品在线| 亚洲欧美日韩在线看 | www.av小说| 久草免费看 | 久久夜色精品国产欧美乱极品 | 亚洲精品男人的天堂 | 精品国产乱码久久久久 | 中文字幕精品一区二区精品 | 日韩av不卡在线播放 | 97超碰在线播放 | 麻豆精品视频在线观看免费 | 在线天堂v| 97在线观看免费观看高清 | 狠狠色丁香久久婷婷综合丁香 | 不卡av在线 | 日韩v欧美v日本v亚洲v国产v | 在线观看日本高清mv视频 | 亚洲综合色丁香婷婷六月图片 | 成人久久精品视频 | 黄色av影视| 日韩在线中文字幕视频 | 成人性生爱a∨ | 六月色婷| 人人插人人看 | 色视频在线免费 | 午夜精品久久久久久 | 日日干天天爽 | 亚洲永久精品一区 | 亚洲成人家庭影院 | 偷拍福利视频一区二区三区 | 成人av电影免费观看 | 国产精品永久免费在线 | 天天插天天操天天干 | 久久小视频 | 99婷婷 | 久久精品波多野结衣 | 狠狠狠色丁香综合久久天下网 | 九九热免费在线视频 | 欧美国产不卡 | 日本久久精品视频 | 91精品亚洲影视在线观看 | 爱干视频| 日韩精品亚洲专区在线观看 | 91欧美精品 | 999久久久免费视频 午夜国产在线观看 | 日韩精品视频在线免费观看 | 人人舔人人射 | 日韩精品一区二 | 香蕉视频国产在线 | 日韩成年视频 | 国产免费小视频 | 一区二区三区高清在线观看 | 97av精品| 亚洲视频在线观看网站 | 人人澡人人添人人爽一区二区 | 美女av电影 | 日韩视频1 | 中文字幕乱码亚洲精品一区 | 精品视频久久久久久 | 91热视频 | 手机看片中文字幕 | 亚洲国产色一区 | 四虎在线免费观看 | 激情欧美一区二区三区 | 午夜视频99 | 日本黄色免费在线观看 | 婷婷激情久久 | 亚洲一级免费观看 | 国产精品成人在线观看 | 日韩av手机在线观看 | 久久精品视频日本 | 三级小视频在线观看 | 国产特级毛片 | 一区二区视频在线看 | 9ⅰ精品久久久久久久久中文字幕 | 在线视频91| 国外成人在线视频网站 | 国产麻豆剧传媒免费观看 | 日日综合 | 一级黄色片在线播放 | 日韩极品在线 | 91精品爽啪蜜夜国产在线播放 | 亚洲1区在线 | 亚洲精品美女免费 | 在线成人一区 | 91人人澡| 国产又黄又爽无遮挡 | 国产一区高清在线观看 | 激情视频二区 | 国产精品久久久久影院日本 | 91精品影视 | 国产69久久久 | 中文字幕一区2区3区 | 成年人视频免费在线 | 四虎影视成人永久免费观看视频 | 久草资源免费 | 国产你懂的在线 | 黄网站色成年免费观看 | 亚洲免费视频在线观看 | 99久久精品日本一区二区免费 | 黄色毛片一级 | 国产精品久久精品 | 久久久精品在线观看 | 亚洲视频资源在线 | 免费精品国产 | 久久九九网站 | 狠狠色狠狠色综合系列 | 欧美国产日韩在线观看 | av丝袜在线 | 精品国产午夜 | 国产麻豆精品一区 | 97看片| 911亚洲精品第一 | 国产极品尤物在线 | 黄色在线观看污 | 日韩欧美在线播放 | 日韩特级片 | 91久久精 | 国产福利在线不卡 | 日日干天天插 | 夜夜夜夜爽 | 色五月色开心色婷婷色丁香 | 欧美成a人片在线观看久 | 久久久精品视频成人 | 婷婷激情欧美 | 手机av在线不卡 | 欧美日韩在线免费观看 | 九色视频网站 | 97视频入口免费观看 | 亚洲欧美激情精品一区二区 | 日韩精品中文字幕在线观看 | 日韩久久久久久久久久 | av视屏在线播放 | 天天狠狠操 | 欧美成人精品欧美一级乱黄 | av在线短片 | 一区二区三区中文字幕在线观看 | 伊人婷婷色 | 亚洲高清91 | 久久综合色婷婷 | 欧美精品久久久久久久久久丰满 | 亚洲欧美日韩中文在线 | 久久精品免视看 | 亚洲一区美女视频在线观看免费 | 日韩电影久久久 | 五月天亚洲婷婷 | 91精品在线播放 | 日韩有码在线观看视频 | 96精品高清视频在线观看软件特色 | 在线观看免费中文字幕 | 日韩激情小视频 | 99热官网 | 日韩av片免费在线观看 | 日韩午夜小视频 | 欧美在线一二 | 三上悠亚在线免费 | 日本精品久久久一区二区三区 | 丁香综合五月 | 在线观看的a站 | 日日干 天天干 | 久久综合久久伊人 | 香蕉视频国产在线观看 | 国产在线一区二区三区播放 | 99久久精品无码一区二区毛片 | 97免费视频在线 | 天堂视频中文在线 | 精品一区二区三区电影 | 色婷婷中文 | 亚洲在线精品 | 国产麻豆成人传媒免费观看 | 久久免费看a级毛毛片 | 国产在线精品一区二区 | 欧美日韩国产在线一区 | 天天视频色版 | 日韩一区二区免费视频 | 黄色av电影免费观看 | 鲁一鲁影院 | 久久久久国产精品免费免费搜索 | 亚洲午夜久久久久久久久电影网 | 福利视频一区二区 | 美女精品 | 色播亚洲婷婷 | 日韩在线视频精品 | av中文字幕在线观看网站 | 国产成人一区二区三区免费看 | 亚洲精品视频在线免费 | 911av视频 | 欧美大片www | 91禁在线看 | 伊人日日干 | 国产又粗又硬又爽的视频 | 久久国产免费视频 | 日韩伦理片hd | 干av在线 | 国产高清视频 | 欧美一区二区三区不卡 | 欧美激情综合网 | a在线观看免费视频 | 国产亚洲va综合人人澡精品 | 香蕉视频免费在线播放 | 日韩精品你懂的 | 一区二区三区日韩视频在线观看 | 丁香色婷 | 蜜臀久久99精品久久久酒店新书 | 丁香花中文在线免费观看 | 色国产精品一区在线观看 | 香蕉网在线观看 | 欧美一级视频在线观看 | 视频91 | 福利久久 | 成人精品99 | 狠狠躁日日躁狂躁夜夜躁av | 日韩av电影中文字幕在线观看 | 日韩欧美在线视频一区二区 | 亚洲精品综合欧美二区变态 | 色www永久免费 | 国产美女在线免费观看 | 一级黄色片在线观看 | 国产精品欧美日韩在线观看 | 在线观看免费一级片 | 免费视频18| 欧美精品久久久久久久久久白贞 | 婷婷色中文字幕 | 天天曰天天曰 | 国产精品一区二区在线观看 | 97香蕉久久超级碰碰高清版 | 日日夜夜添 | 99精品热视频只有精品10 | 色婷婷免费 | 国产精品毛片久久久久久久久久99999999 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产片网站 | 97精品国产97久久久久久粉红 | 午夜精品福利在线 | 69精品在线观看 | 色婷婷久久久综合中文字幕 | 国产精品久久久久久久午夜 | 国产美女精品久久久 | 久久手机免费视频 | 国产理论在线 | 一区二区三区免费在线观看视频 | 精品久久久亚洲 | 一级黄色视屏 | 日韩精品中文字幕久久臀 | 成年人黄色免费看 | 在线观看视频福利 | 欧美污污视频 | 久久超级碰视频 | 狠狠狠狠狠操 | 97av视频 | 日本精品一区二区 | 一区二区在线电影 | 91pony九色丨交换 | 成人免费视频免费观看 | 亚洲一级久久 | 亚洲综合成人在线 | 亚洲精品免费在线观看 | 久久久久精| 超碰国产在线 | 四虎在线永久免费观看 | 91日本在线播放 | 国产黑丝一区二区三区 | av在线影片 | 亚洲电影图片小说 | 亚洲精品乱码久久久久久蜜桃不爽 | 91色视频| 欧美性生交大片免网 | 亚洲视频一区二区三区在线观看 | 亚洲国产日韩在线 | 亚洲精品大全 | 婷婷夜夜 | 天天玩夜夜操 | 婷婷免费在线视频 | av网站免费在线 | 少妇视频在线播放 | 久香蕉 | 日韩欧美在线不卡 | 视频福利在线观看 | 欧美日韩不卡在线视频 | 日韩免费视频一区二区 | 国产伦精品一区二区三区无广告 | 天堂va在线观看 | 天天干,天天射,天天操,天天摸 | av不卡免费在线观看 | 天天干天天操天天干 | 五月天电影免费在线观看一区 | 成人三级网站在线观看 | 日本公妇色中文字幕 | 久久午夜电影网 | 91九色成人蝌蚪首页 | 久草在线免费在线观看 | 91九色porny蝌蚪视频 | 国产一级特黄电影 | 91av视频在线播放 | 国产精品理论片 | 欧美日韩aa | 久久婷婷久久 | 99热精品国产 | www免费在线观看 | 天天色中文 | 黄色网址中文字幕 | 果冻av在线| 精品欧美乱码久久久久久 | 激情综合网色播五月 | 日韩精品视频第一页 | 玖草影院| 国产剧情一区二区在线观看 | 国产综合在线视频 | 欧美精品中文字幕亚洲专区 | 午夜精品福利一区二区三区蜜桃 | 狠狠色丁香婷婷综合基地 | 悠悠av资源片 | 国产色女|