渐行渐远这个网名,用了好多年了,
非常喜欢.
童年远了.
梦想远了.
常见Oracle HINT的用法(转载)
上一篇 /
下一篇 2008-01-19 16:55:51
/ 个人分类:SQL.开发.函数
1. /*+ALL_ROWS*/
Z.Q4rvq}Fr0表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
1^"v'?,HO?0?M#z0例如:
O^h,k2T
_0SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; ITPUB个人空间'Yt+j#xcu|
2. /*+FIRST_ROWS*/ITPUB个人空间#etya*_3rZR2Y9E
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
H qMwg;{,Y;nq0例如:ITPUB个人空间S$t5SoJ0AiI1h'j
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; ITPUB个人空间,n,\0h"A9c
3. /*+CHOOSE*/
cw,s2y2~;A:Y7j X/J0表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
({ hWuXE&]U!PG
E0表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;ITPUB个人空间"L
TzX9U
例如:
m~m?&p!sH\S0SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
4. /*+RULE*/
D#\
S e]bA
J,m4f.U0表明对语句块选择基于规则的优化方法.ITPUB个人空间,R
d
q3X\$g$i!p
i
例如:ITPUB个人空间Y{~
k/n MmdQ_3Q
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; bitscn.com
5. /*+FULL(TABLE)*/
+y$Lu4eq
[0表明对表选择全局扫描的方法.
!X?u
` W7a0例如:ITPUB个人空间!OZC C C^#G s
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT'; BBS.bitsCN.com网管论坛
6. /*+ROWID(TABLE)*/ITPUB个人空间%V6tnB @ j
提示明确表明对指定表根据ROWID进行访问.ITPUB个人空间,i$H&`$jN @ @
例如:ITPUB个人空间X!g'Eg|O'k4Z
SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'ITPUB个人空间bh're iJw1a
AND EMP_NO='SCOTT'; BBS.bitsCN.com网管论坛
7. /*+CLUSTER(TABLE)*/
r:A1m,nqg| ~#@0提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效.ITPUB个人空间jf EQ(gi_ _m.r&q
例如:ITPUB个人空间Qy!hv$?(W0~
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMSITPUB个人空间9j8h
kP;y(Qwp0Y
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
8. /*+INDEX(TABLE INDEX_NAME)*/