|
hehe
最初由 shao 发布
[B]入点唯一时,是有范围的连续扫描.
入点较少时,是跳跃式的有范围的连续扫描.
入点较多且分布随机时,要么放弃索引,要么选择index full scan.
(判别原则基本是看select列在不在索引中,和维护信息的正确性.)
个人的一些小看发,说错不要打我. [/B]
你这次跟你上次描述的已经有差异了
不过,你的这个说法,跟我说的是一致的呀 
http://www.*****.org/bin/ut/topi ... p;bpg=1&age=100
被屏蔽 的为 C N O U G (china orcle user group 的缩写)
这里有 和 CP 的探讨
他在做测试
根据 演示结果可以看出一些东西来
可进一步探讨 索引的结构 和查询 方式
btw: 想知道 你的 探究方式
CP :
:
1* SELECT OWNER,OBJECT_ID FROM YAFENG WHERE object_name='DBA_TABLES'
16:44:01 scott@ORA9> /
OWNER OBJECT_ID
------------------------------------------------------------ ----------
PUBLIC 1813
SYS 1812
Elapsed: 00:00:00.15
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=11 Card=1 Bytes=22)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'YAFENG' (Cost=11 Card=1 Bytes=22)
2 1 INDEX (SKIP SCAN) OF 'IDX_YAFENG' (NON-UNIQUE) (Cost=10 Card=1)
12 consistent gets
16:44:02 scott@ORA9> select distinct owner from yafeng;
OWNER
------------------------------------------------------------
BIDDER
EACHPAY
OUTLN
PERFSTAT
PUBLIC
SCOTT
SYS
SYSTEM
8 rows selected.
12 consistent gets:
root block -> branch block(begin with bidder:no object_name like DBA_tables) ---one block gets
-> Branch block(begin with eachpay:no object_name like dba_tables) ---one block gets
-> Branch block(begin with outln:no object_name like dba_tables) --one block gets
-> Branch block(begin with perfstat:no object_name like dba_tables) ---one block gets
-> Branch block(begin with public:find one object named dba_tabes)->rowid-row (2 block gets)
-> Branch block(begin with scott:no object_name like dba_tables) --one block gets
-> Branch block(begin with system:no object_name like dba_tables) --one block gets
-> Branch block(begin with sys:no object_name like dba_tables) ->rowid-row(2 block gets) |
|