oracle常见hint
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,与优化器模式相关的hint[plain] view plain copy1.1 /*+ all_rows */ 让优化器启动CBO1.2 /*+ first_rows(n)*/优化器启动CBO,选择会
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
徐州淘金网络技术有限公司
无限飞行的服务器分几种
平板电脑不停提示数据库信息异常
魔兽世界怀旧服主宰之剑服务器
网络安全学校学生签字仪式照片
网络安全教育学习宣传
HB软件开发工具
2017年教育网络安全会
数据库触发器同步
服务器跑码
软件开发科技公司商业计划书
如用数据库打印条码
苏州软件开发培训班在哪里
网络安全新闻 app
软件开发3年能到什么水平
我的世界服务器死亡
网络安全技术培养基地
渤海大学有数据库吗
如何用社交软件开发国外客户
南沙点金互联网科技有限公司
char(16)数据库
嘉定区网络软件开发值多少钱
大话西游2烟雨斜阳哪个服务器好
微博5e数据库
t6安装后服务器ip设置
东莞市德颐网络技术有限公司
嘉定区新时代软件开发活动
福建应用软件开发多少钱
研发科目 服务器租赁
如何查看表格个数据库