oracle执行计划报表解释,Oracle执行计划解释3 - lgwmlx的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

根据索引的类型与where限制条件的不同,有4种类型的索引扫描:

K!B"`LgjP}0    索引唯一扫描(index unique scan)Q%}6w*M)j"JV5W+I0

rXI\;Fh0    索引范围扫描(index range scan)51Testing软件测试网PoB/gM-Ty

['F)M0RLE/Y0    索引全扫描(index full scan)51Testing软件测试网zsJc(J

KE-D$Dr+S0    索引快速扫描(index fast full scan)z'Z$re_,O/a)^n0

Ti,`~jp_"z0    (1) 索引唯一扫描(index unique scan)51Testing软件测试网:bX)lEc"j7p

(S_9I?,T0    通过唯一索引查找一个数值经常返回单个ROWID.如果存在UNIQUE 或PRIMARY KEY 约束(它保证了语句只存取单行)的话,Oracle经常实现唯一性扫描。c$m*nXO"f3wxQ051Testing软件测试网x8h'Z?je

使用唯一性约束的例子:5M1ECuo[#GA"Q051Testing软件测试网j]&}$|]@;H v,_

SQL> explain plan for51Testing软件测试网]:a*AfSLc51Testing软件测试网Q G)fH{$}

select empno,ename from emp where empno=10;51Testing软件测试网6p3i6A4N LmUk51Testing软件测试网b,Sb&vs;B

Query Plan*jT-k$}SN

v.J3PC0

J/bf/uQt!e0------------------------------------51Testing软件测试网#c'kZMVS51Testing软件测试网 c2]S8C`@

SELECT STATEMENT [CHOOSE] Cost=1Zav^+FF/y]ZZ0

-xy BB9?UZd0    TABLE ACCESS BY ROWID EMP [ANALYZED]51Testing软件测试网I-UY*K&bp3N

(F'|N-}7Vz%~8s9l0    INDEX UNIQUE SCAN EMP_I151Testing软件测试网y U7P0jn-~$^1a$f51Testing软件测试网`_A(jf zo4A

(2) 索引范围扫描(index range scan)B$Rz H;S{c#P+}0

.}G&O6d(I%h+Y0    使用一个索引存取多行数据,在唯一索引上使用索引范围扫描的典型情况下是在谓词(where限制条件)中使用了范围操作符(如>、、>=、<=、between)51Testing软件测试网"UY3VZ#?

~{8|4a MC4I;M$ts0    使用索引范围扫描的例子:51Testing软件测试网:d!t+Owv51Testing软件测试网t;_bCzw0f

SQL> explain plan for select empno,ename from emp51Testing软件测试网z3jhU\g-U,nI51Testing软件测试网.~(vN]-SJvBnFB+qF

where empno > 7876 order by empno;51Testing软件测试网aqC_z5i?#F

1l#j&\~1S2d$q*Q)e0}0    Query Plan51Testing软件测试网+^g0}mNcR#h-F#J51Testing软件测试网/W"}$M!p"|b

--------------------------------------------------------------------------------#s+H#xdK2nY051Testing软件测试网t_5@1I3r;[

SELECT STATEMENT[CHOOSE] Cost=151Testing软件测试网1k,RQ{V'v{V51Testing软件测试网)mz;tp;g+j,j#x

TABLE ACCESS BY ROWID EMP [ANALYZED],z1M"e&e#E;L;s0

AS$L7XL+MX}q4sYr0    INDEX RANGE SCAN EMP_I1 [ANALYZED]51Testing软件测试网0UM

C,|.e[Z

/\5CO7J)iO_]5E+CnHp0    在非唯一索引上,谓词col = 5可能返回多行数据,所以在非唯一索引上都使用索引范围扫描。2a;_k \7S0

4n_'dF?sA pk0    使用index rang scan的3种情况:51Testing软件测试网O#j1Y

V*Om&[

-i0T Uwrv0s-x0    (a) 在唯一索引列上使用了range操作符(> < <> >= <= between)51Testing软件测试网/Tk-Uce:g

H8tI`'LN0    (b) 在组合索引上,只使用部分列进行查询,导致查询出多行51Testing软件测试网

Y"t%t%I*_$]$FC51Testing软件测试网6w)}ME%Ng$BT`R/b

(c) 对非唯一索引列上进行的任何查询。51Testing软件测试网p Qx"tHQ*G51Testing软件测试网TViT%I.e9s-QY,Z

(3) 索引全扫描(index full scan)Y6O8o-]:Q4A#d |3E0

w"`;~Jd)^2_0    与全表扫描对应,也有相应的全索引扫描。而且此时查询出的数据都必须从索引中可以直接得到。-i-Gj|4S;\Zl051Testing软件测试网+te)bD)\juD

全索引扫描的例子:51Testing软件测试网0K8sq\vm9G

uaR5xRf"`0    An Index full scan will not perform single block i/o''s and so it may prove to be inefficient.51Testing软件测试网v%|!w2w:R

aV51Testing软件测试网8yH'^5c%M5{/?\5b

e.g.51Testing软件测试网@ }j[+S-\9?;W*}H_51Testing软件测试网&e'_qW~#@C2o$n

Index BE_IX is a concatenated index on big_emp (empno, ename)51Testing软件测试网ZU(t9z{`Jf

_e'I*coLy0    SQL> explain plan for select empno, ename from big_emp order by empno,ename;3T/L6e{&Q0

!tp;Cb+e|*q0    Query Planw4r0a.NbCf"U3Bu0

&ll.Qt{"X3W0--------------------------------------------------------------------------------51Testing软件测试网p!s8?g#R[2CE

Ng.[&H5BU~l0    SELECT STATEMENT[CHOOSE] Cost=2651Testing软件测试网+fpm$S@y z

rANE&OI0    INDEX FULL SCAN BE_IX [ANALYZED]51Testing软件测试网wrrp&I$|d8m9d

LM$ulz0    (4) 索引快速扫描(index fast full scan)iHvD0t!C$GM051Testing软件测试网!v-g(l!C/Z{ }hk

扫描索引中的所有的数据块,与 index full scan很类似,但是一个显著的区别就是它不对查询出的数据进行排序,即数据不是以排序顺序被返回。在这种存取方法中,可以使用多块读功能,也可以使用并行读入,以便获得最大吞吐量与缩短执行时间。51Testing软件测试网 TWzE:gN+G51Testing软件测试网)X2f/Eg8i"|

索引快速扫描的例子:7T}^kzt0f5T0

D:l|4pT&uK0    BE_IX索引是一个多列索引: big_emp (empno,ename)Xe*TM;[051Testing软件测试网UG&H3[T

SQL> explain plan for select empno,ename from big_emp;{e/}0XxXg051Testing软件测试网4_)uR"l9Y

Query PlanH(u)yg^ sJs051Testing软件测试网qL2E7k U0F0_w.h\&L)|

------------------------------------------51Testing软件测试网v8pc7k Sv7m

"Qqx/?'irw[5^0    SELECT STATEMENT[CHOOSE] Cost=1{S*Ug!W/pINQA051Testing软件测试网 V^\vXt"r#Q%l

INDEX FAST FULL SCAN BE_IX [ANALYZED]/w)oz?J0V0

0|.GAY)j:Y0    只选择多列索引的第2列:l!pq~+n0

h9\G7o}9s*t$Jj0    SQL> explain plan for select ename from big_emp;3d3@z){B5eL(Z-S051Testing软件测试网@dpxCcp

Query Plan51Testing软件测试网|2bYj8w\M*hJ

Y-SY{C6_'S*w1{En0------------------------------------------!~$?2H4n[2l*nw051Testing软件测试网#ZDlLQ

SELECT STATEMENT[CHOOSE] Cost=151Testing软件测试网%f/i3` b*@9WY,VW7r!_a E51Testing软件测试网2p

Bd"?R!wH3s

INDEX FAST FULL SCAN BE_IX [ANALYZED]51Testing软件测试网'wJa9E8sSa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值