注解必须紧跟在select、update、merge、insert或delete关键字后面。
select empid,
ename /*+ index(e emp_pk) */
from emp e
where empid in(1001, 1002);
访问路径提示:
/*+ FULL(表名)*/ 全表扫描
/*+ INDEX(表名)*/ 特定索引扫描
/*+ NO_INDEX(表名)*/ 不使用索引
/*+ INDEX_ASC(表名)*/ 在升序模式使用索引
/*+ INDEX_DESC(表名)*/ 在降序模式使用索引
/*+ INDEX_JOIN*/ 索引合并
/*+ INDEX_FFS(表名)*/ 索引快速全扫描
/*+ NO_INDEX_FFS*/ 不使用索引快速全扫描
/*+ INDEX_SS(表名)*/ 索引跳扫
/*+ INDEX_SS_ASC(表名)*/ 在升序模式使用索引跳扫
/*+ INDEX_SS_DESC(表名)*/ 在降序模式使用索引跳扫
/*+ NO_INDEX_SS(表名)*/ 不使用索引跳扫
合并提示:
/*+ USE_NL(表名A 表名B)*/ 使用嵌套循环合并的方法
/*+ NO_USE_NL(表名A 表名B)*/ 不使用嵌套循环合并的方法
/*+ USE_NL_WITH_INDEX(表名A 表名B)*/ 使用带索引的嵌套循环合并的方法
/*+ USE_MERGE(表名A 表名B)*/ 使用排序归并合并的方法
/*+ NO_USE_MERGE (表名A 表名B)*/ 不使用排序归并合并的方法
/*+ USE_HASH(表名A 表名B)*/ 使用散列合并的方法
/*+ NO_USE_HASH (表名A 表名B)*/ 不使用散列合并的方法
并行提示:
/*+ PARALLEL(4)*/ 使用并行
/*+ NO_PARALLEL*/ 不使用并行
/*+ PARALLEL_INDEX(4)*/ 使用并行化索引范围扫描
/*+ NO_PARALLEL_INDEX*/ 不使用并行化索引范围扫描
杂项提示:
/*+ APPEND*/ 启动直接路径插入模式,以使数据插入表末端
/*+ NOAPPEND*/ 不启动直接路径插入模式
/*+ CACHE(表名)*/ 将查询访问的数据块放置在LRU列表最近使用的一端
/*+ NOCACHE(表名)*/ 将查询访问的数据块放置在LRU列表最早使用的一端
/*+ PUSH_SUBQ*/ 在尽可能最早的时间计算子查询
/*+ NO_PUSH_SUBQ*/ 在尽可能最晚的时间计算子查询
/*+ DRIVING_SITE*/ 使分布式查询中另一个数据库成为该查询的驱动者
select empid,
ename /*+ index(e emp_pk) */
from emp e
where empid in(1001, 1002);
访问路径提示:
/*+ FULL(表名)*/ 全表扫描
/*+ INDEX(表名)*/ 特定索引扫描
/*+ NO_INDEX(表名)*/ 不使用索引
/*+ INDEX_ASC(表名)*/ 在升序模式使用索引
/*+ INDEX_DESC(表名)*/ 在降序模式使用索引
/*+ INDEX_JOIN*/ 索引合并
/*+ INDEX_FFS(表名)*/ 索引快速全扫描
/*+ NO_INDEX_FFS*/ 不使用索引快速全扫描
/*+ INDEX_SS(表名)*/ 索引跳扫
/*+ INDEX_SS_ASC(表名)*/ 在升序模式使用索引跳扫
/*+ INDEX_SS_DESC(表名)*/ 在降序模式使用索引跳扫
/*+ NO_INDEX_SS(表名)*/ 不使用索引跳扫
合并提示:
/*+ USE_NL(表名A 表名B)*/ 使用嵌套循环合并的方法
/*+ NO_USE_NL(表名A 表名B)*/ 不使用嵌套循环合并的方法
/*+ USE_NL_WITH_INDEX(表名A 表名B)*/ 使用带索引的嵌套循环合并的方法
/*+ USE_MERGE(表名A 表名B)*/ 使用排序归并合并的方法
/*+ NO_USE_MERGE (表名A 表名B)*/ 不使用排序归并合并的方法
/*+ USE_HASH(表名A 表名B)*/ 使用散列合并的方法
/*+ NO_USE_HASH (表名A 表名B)*/ 不使用散列合并的方法
并行提示:
/*+ PARALLEL(4)*/ 使用并行
/*+ NO_PARALLEL*/ 不使用并行
/*+ PARALLEL_INDEX(4)*/ 使用并行化索引范围扫描
/*+ NO_PARALLEL_INDEX*/ 不使用并行化索引范围扫描
杂项提示:
/*+ APPEND*/ 启动直接路径插入模式,以使数据插入表末端
/*+ NOAPPEND*/ 不启动直接路径插入模式
/*+ CACHE(表名)*/ 将查询访问的数据块放置在LRU列表最近使用的一端
/*+ NOCACHE(表名)*/ 将查询访问的数据块放置在LRU列表最早使用的一端
/*+ PUSH_SUBQ*/ 在尽可能最早的时间计算子查询
/*+ NO_PUSH_SUBQ*/ 在尽可能最晚的时间计算子查询
/*+ DRIVING_SITE*/ 使分布式查询中另一个数据库成为该查询的驱动者