oracle常见hint
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,与优化器模式相关的hint[plain] view plain copy1.1 /*+ all_rows */ 让优化器启动CBO1.2 /*+ first_rows(n)*/优化器启动CBO,选择会
千家信息网最后更新 2025年11月06日oracle常见hint与优化器模式相关的hint
[plain] view plain copy
与表及索引访问相关的hint
与表连接顺序相关的hint
与表连接方法相关的hint
与查询转换相关的hint
与并行有关的hint
其他常见hint
[plain] view plain copy
- 1.1 /*+ all_rows */ 让优化器启动CBO
- 1.2 /*+ first_rows(n)*/优化器启动CBO,选择会快返回前n行数据的执行计划。与first_rows_n不同,first_rows_n n只能为1,10,100,1000.
- 1.3 /*+ rule */ 启动RBO,与其他hint连用,其他hint一般会失效。
与表及索引访问相关的hint
- 2.1 full(xxx) 全表扫描
- 2.2 index(目标表 目标索引1 目标索引2)
- 2.3 no_index(目标表 目标索引1 目标索引2)
- 2.4 index_desc(目标表 目标索引1 目标索引2) 让优化器对目标索引执行降序扫描,如目标索引是降序,则hint则以升序扫描目标索引。
- 2.5 index_ffs(目标表 目标索引1 目标索引2) 索引快速全扫描
与表连接顺序相关的hint
- 3.1 ordered 让优化器在执行多表连接时,按照他们在sql中where条件出现顺序进行连接。查询转换可能会导致这个hint失效。
- 3.2 leading(表1 表2) 让优化器将我们执行多个表的连接结果作为目标sql表连接过程中的结果集,并将hint中自左到右的第一个表,作为表连接的驱动表。
与表连接方法相关的hint
- 4.1 use_merge(表1 表2) 让优化器将我们指定的多个表作为被驱动表与其他表或结果集做排序合并连接。
- 4.2 no_use_merge(表1 表2)
- 4.3 use_nl(表1 表2) 让优化器将我们指定的多个表作为被驱动表与其他表或结果集做嵌套循环连接。经常与leading合用。
- /*+use_nl(s,X) leading X */
- 4.4 no_use_merge(表1 表2)
- 4.5 use_hash(表1 表2) 让优化器将我们指定的多个表作为被驱动表与其他表或结果集做哈希连接。经常与leading合用。
- 4.6 no_use_merge(表1 表2)
- 4.7 merge_aj 针对子查询的hint,让优化器对目标表执行排序合并反连接。
- 4.8 nl_aj 针对子查询的hint,让优化器对目标表执行嵌套循环反连接。
- 4.9 hash_aj 针对子查询的hint,让优化器对目标表执行哈希反连接。
- 4.10 merge_sj 针对子查询的hint,让优化器对目标表执行排序合并半连接。
- 4.11 nl_sj 针对子查询的hint,让优化器对目标表执行嵌套循环半连接。
- 4.12 hash_sj 针对子查询的hint,让优化器对目标表执行哈希半连接
与查询转换相关的hint
- 5.1 use_concat 是针对目标sql的hint,让优化器对目标sql使用in_list扩展或or_list扩展。
- 5.2 no_expand 是use_concat反义hint,不让优化器对目标sql使用in_list扩展或or_list扩展。
- 5.3 merge 是针对单个目标视图的hint,让优化器对目标视图执行视图合并(view merging)
- 5.4 no_merge 是针对merge的反义hint,不让优化器对目标视图执行视图合并(view merging)
- 5.5 unnest 是针对子查询的hint,让优化器对目标sql中的子查询展开(subquery unnesting)
- 5.6 no_unnest 是针对unnest反义的hint,不让优化器对目标sql中的子查询展开(subquery unnesting)
- 5.7 expand_table(表) 让优化器在不考虑成本的情况下,对表进行表扩展
- 5.8 no_expand_table(表) expand_table(表)的反义hint,不对表进行表扩展
与并行有关的hint
- 6.1 parallel 并行
- 6.2 no_parallel 针对整个目标sql的hint
- 6.3 parallel_index(表 index-1 index-2 ... index-n n n n )
- 6.4 no_parallel_index(表 index-1 index-2 ... index-n)
其他常见hint
- 7.1 driving_site 让优化器在我们指定目标表所在的节点上执行目标sql。只适用于带dblink的分布式查询语句。
- 7.2 append 让优化器执行带子查询的insert时,绕开buffer cache,使用直接路径插入。
- 7.3 append_values 让优化器执行带values的insert时,绕开buffer cache,使用直接路径插入。(11R2)
- 7.4 push_pred 针对目标视图的hint,让优化器对目标视图执行连接谓词推入。
- 7.5 no_push_pred 针对目标视图的hint,不让优化器对目标视图执行连接谓词推入。
- 7.6 push_subq 针对子查询的hint,让优化器尽早执行目标sql中不能做子查询展开的子查询。
- 7.7 no_push_subq 针对子查询的hint,让优化器最后执行目标sql中不能做子查询展开的子查询。
- 7.8 opt_param 针对目标sql的hint,用来修改针对目标sql比系统级,session级更细颗粒的更改。
- 7.9 optimizer_features_enable('优化器版本号') 更改优化器版本
- 7.10 qb_name 对一个查询块指定自定义的名称。
- 7.11 cardinality 针对单个目标表的hint,用来设置对目标表执行扫描操作后的cardinality的值。(对唯一索引扫描无效)
- 7.12 swap_join_inputs 针对hash连接的hint,让优化器交换原hash连接的驱动表和被驱动表顺序。
目标
查询
索引
视图
驱动
结果
反义
多个
顺序
哈希
循环
排序
单个
版本
谓词
路径
常见
不同
不对
分布式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
饿了吗软件开发费用
ardiuno数据库用什么
数据库封装统一接口
服务器机柜属于什么类目
电信送服务器
浪潮服务器raid卡图片
浙江安卓软件开发要多少钱
软件开发外包人员薪资待遇
网络安全法怎么处罚网络公司
微耕门禁数据库配置
网络技术的资料
甘肃网络技术服务报价
服务器实时备份软件
安迅思供需数据库
服务器有4个网口虚拟机
4g软件开发是什么
邯郸系统软件开发哪家可靠
服务器架设需要什么
福州升腾服务器厂家供应
江苏工业软件开发多少钱
余姚直销软件开发周期
针对网络安全的观点
数据库整型变量自减操作
笔记本键盘软件开发
聚赢网络技术有限公司
戴尔服务器手册中文版
杭州地铁软件开发工资
中安网络安全黑客技术
access数据库表单录入
手机应用 服务器