ORACLE常用SQL优化hint语句Oracle认证考试
文章作者 100test 发表时间 2010:02:10 19:58:24
来源 100Test.Com百考试题网
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /* ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /* ALL _ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’.
2. /* FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /* FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’.
3. /* CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量.
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法.
例如:
SELECT /* CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’.
4. /* RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /* RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’.
5. /* FULL(TABLE)*/
表明对表选择全局扫描的方法.
例如:
SELECT /* FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO=’SCOTT’.
6. /* ROWID(TABLE)*/
提示明确表明对指定表根据ROWID进行访问.
例如:
SELECT /* ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID