oracle 为什么没有使用索引的一种情况
上一篇 / 下一篇 2008-08-05 14:28:50 / 个人分类:pl/sql
存在以下索引
SQL> SELECT INDEX_NAME,COLUMN_NAME FROM USER_IND_COLUMNS WHERE INDEX_NAME='IDX_GBDS_CLIENT_GAME_EVENT';ITPUB个人空间(n(zFsII
1h&\/Wx{Y#x g2d#O0INDEX_NAME COLUMN_NAMEITPUB个人空间2hV8Ye-?*p
------------------------------ --------------------------------------------------------------------------------
pH._:p%` e(q0IDX_GBDS_CLIENT_GAME_EVENT CLIENT_IDITPUB个人空间$la/j-T0[
s;tQ:`
IDX_GBDS_CLIENT_GAME_EVENT GAME_CODE_ID
+g+^e]&M~*`0IDX_GBDS_CLIENT_GAME_EVENT EVENT_DATE
|4pU7qd"z {
j0IDX_GBDS_CLIENT_GAME_EVENT BET_TYPE
1.下面这样写不会用上索引
SQL> select * from tb_game_bet_detail_snapshot where game_code_id=50000;
no rows selected
~WP \9?C-e0Execution PlanITPUB个人空间
Z~"du } Vy0rK;T)t
----------------------------------------------------------
aL#y2OzT
C0 0 SELECT STATEMENT ptimizer=CHOOSE (Cost=7 Card=1050 Bytes=68
R
m6Jf2u;C-r0 250)
1 0 TABLE ACCESS (FULL) OF 'TB_GAME_BET_DETAIL_SNAPSHOT' (Cost
S*Gct.@3i)U!IdZ0 =7 Card=1050 Bytes=68250)
StatisticsITPUB个人空间V$Or$fp,@/m7s,w
----------------------------------------------------------
d!K4`F6HWx~0 0 recursive calls
-U!GQZ5\:z!TF0 0 db block getsITPUB个人空间n1r+y3fo7G
126 consistent getsITPUB个人空间x)I
HW
m
0 physical reads
{9US@S0 0 redo size
5G'uH/E ?8TxhB
|
I0 778 bytes sent via SQL*Net to client
s
Ghr!n^0 364 bytes received via SQL*Net from client
U ]+R0g$Q`\f0 1 SQL*Net roundtrips to/from clientITPUB个人空间v-UP3{6z]y*B!]g~
0 sorts (memory)ITPUB个人空间#aNw.c%UW`r!\
0 sorts (disk)ITPUB个人空间*IV,Z~"fw)Z+jj*D
0 rows processed
2.把谓词全部写上 用上快速索引扫描 一致性读也降下来
SQL> select client_id,game_code_id,event_date,bet_type from tb_game_bet_detail_sITPUB个人空间+h;i'Pt-W'zyM!L
napshot where game_code_id=50000;
no rows selected
ITPUB个人空间y}V#]X9p~@
Execution Plan
B%\:b9X'm WL0----------------------------------------------------------
j1Y|6k%c Fl
[p _3A0 0 SELECT STATEMENT ptimizer=CHOOSE (Cost=5 Card=1050 Bytes=23
KI,_$N_s1yk0 100)
1 0 INDEX (FAST FULL SCAN) OF 'IDX_GBDS_CLIENT_GAME_EVENT' (UN
l*Y'jv`/\-[Q0 IQUE) (Cost=5 Card=1050 Bytes=23100)
StatisticsITPUB个人空间 x.a)X yk5E[
----------------------------------------------------------
5PY.P5e-xe+Et0 0 recursive callsITPUB个人空间F*f%sU4G)J U+v6B
0 db block getsITPUB个人空间GS8B+\5OPp:I(V:GzIu
35 consistent getsITPUB个人空间G`"]R6Z&Go#h#g
0 physical reads
'e+A4\:?B?u:VPj0 0 redo size
ps'}ua4l C0 353 bytes sent via SQL*Net to client
:V!^V2JV4a+v0 364 bytes received via SQL*Net from client