oracle优化器SQL

发布时间 2023-12-07 09:26:26作者: 七娃子

注解必须紧跟在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*/                 使分布式查询中另一个数据库成为该查询的驱动者

 


————————————————
链接:https://blog.csdn.net/zhibin_086/article/details/73563574