oracle常见hint
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,与优化器模式相关的hint[plain] view plain copy1.1 /*+ all_rows */ 让优化器启动CBO1.2 /*+ first_rows(n)*/优化器启动CBO,选择会
千家信息网最后更新 2025年01月29日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安全错误
数据库的锁怎样保障安全
数据仓库与数据库是一个概念吗
小型广告公司数据库
股票融资融券软件开发
visa安装教程服务器过早关闭
网络安全能力图谱北信源
双CPU服务器主机
战地1如何搜索官方服务器
linux服务器查看域名
一台服务器多个站点
如何登录打印机服务器
数据库的三个分支
普惠网络技术怎么样
网络安全防护与控制
武威软件开发选哪家
想学网络安全应该从哪里开始
三门县软件开发
邮政储蓄银行软件开发面试
济南知名软件开发有限公司
抓好网络安全的思考
注销服务器安全狗
软件开发过程的了解
进口软件开发口碑推荐
软件开发交付不了
服务器内存优化
网络技术服务属于哪个
图书馆采购电子数据库申请
网络安全泰山杯
嘉定区海航软件开发直销价格
数据库自增线程安全
软件开发架构师月薪