8. /*+INDEX(TABLE INDEX_NAME)*/
表明对表选择索引的扫描。
例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX)
USE SEX_INDEX BECAUSE THERE ARE FEWMALE
BSEMPMS */ FROM BSEMPMS WHERE SEX='M'; |
9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明对表选择索引升序的扫描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS
WHERE DPT_NO='SCOTT'; |
10. /*+INDEX_COMBINE*/
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式。
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI
HIREDATE_BMI)*/ * FROM BSEMPMS
WHERE SAL<5000000 AND HIREDATE |
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明确命令优化器使用索引作为访问路径。
例如:
SELECT /*+INDEX_JOIN(BSEMPMS
SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
FROM BSEMPMS WHERE SAL<60000; |
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
表明对表选择索引降序的扫描方法。
例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS
WHERE DPT_NO='SCOTT'; |
13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
对指定的表执行快速全索引扫描,而不是全表扫描的办法。
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS
WHERE DPT_NO='TEC305'; |
14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
提示明确进行执行的选择,将几个单列索引的扫描合起来。
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,
IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS
WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306'; |