oracle常见hint
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,与优化器模式相关的hint[plain] view plain copy1.1 /*+ all_rows */ 让优化器启动CBO1.2 /*+ first_rows(n)*/优化器启动CBO,选择会
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
广州思力智慧互联网科技
数据库主连接是什么原因
大学生互联网科技创新
天天十三水软件开发
检测自己电脑是否有数据库
中国国家统计数据库
舒兰市政法委网络安全
学位申请数据库
小学生网络安全知识竞赛题
高级软件开发工程师证书费用
genecards数据库
网络安全敏感国 美国
成都云控软件开发
什么是数据库实施的主要工作
网络安全英文论述
纪检人员网络安全
串口转换服务器
数据库怎么批量替换域名
贵州白帽子培训网络安全
三级网络技术有上机吗
数据库视图的优缺点
数据库最小覆盖实例
钉钉数据库怎么找
热门的网络技术有哪些
沛县专业性软件开发答疑解惑
电脑派位软件开发
一台电脑一台服务器怎么组网
异星探险连接服务器失败
三星手机和中国服务器通话
网络安全和信息化委员会宗旨