当前位置: 首页 > news >正文

Oracle复习部分记录

GuassDB,Oracle,Postgresql 适用的hint说明

一、在使用with as 短语时,使用materialize 会生产临时表,执行完成后,PGA会将其清除。
materialize

二、pq_distribute 表示在并行过程中,按照并行对标划分多少个分区,a分区与b分区如何进行关联并行查询。可能是a广播到b的每个分区进行关联合并。
详细说明URL:https://www.cnblogs.com/kakaisgood/p/13181352.html
use_hash(a,b) parallel(a,6),parallel(b,6) pq_distribute

三、指定优化器使用的表的索引
index(tablename index_name)
alter session set ‘_optimizer_push_pred_cost_based’=false 禁止谓词推入
alter session set ‘_push_join_predicate’=false 禁止非常量的谓词推入

四、关闭位图索引转换
alter session set ‘_b_tree_bitmap_plans’=false
/+ opt_param(‘_b_tree_bitmap_plans’,‘false’)/

五、dblink 同时查询本地表与远程表,两种处理方式:第一种是将远程数据表数据取回本地,然后跟本地表进行关联查询,获取最终结果。第二种是将本地表数据传到远程库中与远程表进行关联查询,在将关联结果取回。r便是remote的表名称,l表示local的表名称
主要用于减少网络传输,但是对与DDL,DML driving_sit()的hint的提示是无效的。

driving_sit® #如果本地表数据量较小,则用r代替远程的表名称,表示将本地表数据通过网络传输到远程库表中进行关联后,获取最终结果集。

driving_sit(l) #如果远程表数据量较小,则用l代替本地的表名称,表示将远程表数据通过网络传输到本地库表中进行关联查询。

六、禁用笛卡尔积连接,使用use_hash() 指定连接表之间的where条件通过hash值进行匹配关联
use_hash(a,b) opt_param(‘_optimizer_mjc_enabled’,‘false’)

七、视图合并
merge() 存在A,B,C。B与C组成视图,然后A跟BC视图进行结果集关联。如果进行视图合并,则根据where条件,可能会出现AB进行先关联,做HASH JOIN操作,然后结果集与C进行关联。可能在执行计划中,不会出现view的字样。
no_merge() 存在A,B,C。B与C组成视图,然后A跟BC视图进行结果集关联。

八、延迟进行聚合运算
lazyagg 在子查询中有group by 且外部还存在group by的情况下,子查询中的表很大,外部的表相比较小的情况下。使用该特性,会消除子查询中的聚合运算,先关联在group by。

九、配合leading() 指定d为被驱动表,e为驱动表。指定优化器将我们指定的多个表作为被驱动表与其它表或结果集或排序合并连接
use_merge(e,d) leading(d) index(d) index(e index_name)
禁止笛卡尔积
opt_param(‘_optimizer_mjc_enabled’,false)

十、存在nesting loop的情况下,进一步控制表关联的顺序,leading(emp)先对emp表进行查询并与dept先进行关联操作
use_nl(emp,dept) leading(emp)

十一、将主查询表中的where条件下推到where子查询,相当于通过主查询表中的where条件减少了子查询中的扫描行数。如果A.r=1 and (A join B),则可能存在先A.r=1 与(AjoinB)的结果集进行聚合。magicset则先A.r=1减少结果集后,在进行(AjoinB),进一步减少数据集,采用递归的方式最后得出结果。
magicset

十二、将where,having非相关子查询提升和winmagic重写优化,相当于将子查询提升为join等方式
enable_sublink_pullup_enhanced

十三、将标量子查询改成为left join 标量子查询是指只返回一行一列的查询
Intargetlist

十四、谓词推入,将条件推入到子查询中,将过滤条件尽早的推入到子查询中,减少内部查询返回的数据量
predpushnormal,predpush,predpushforce

十五、禁止子查询提升,相当于对子查询加/+no_expand/
disable_pullup_expr_sublink

十六、提升无agg的where子查询,表示没有agg聚合函数(比如 sum函数)的子查询,指示优化器对子查询的条件进行唯一值校验,保证对于每个条件只有一行输出
uniquecheck

十七、消除where子查询中的distinct和group by
remove_redundant_distinct_group_by

十八、列裁剪消除子查询中冗余的投影列,只保留在查询过程中处理的有效数据列(被需要关联的列),减少I/O操作和内存的使用
column_pruner

十九、子查询展开
semi-join 半连接
anti-join 反连接
unnest与nounnest
nounnest 子查询不展开的意思是当子查询在最后一步执行,对应执行计划为FILTER,过滤的方式进行匹配。
unnest 子查询展开的意思是会将子查询里面的整体结果集和外部的表做hash join或HASH JOIN SEMI的连接。

相关文章:

  • AWS无服务器 应用程序开发—第八章 计算服务(AWS Lambda)
  • 【禁用Windows Defender】Defender Control v2.1
  • 前端HTML相关知识
  • adb简单使用命令
  • 【泛微系统】PC端/移动端JS写法区别
  • 深入理解Java正则表达式及其应用
  • Zig标准库:最全数据结构深度解析(1)
  • 【C++】C/C++内存管理
  • centos环境上:k8s 简单安装教程
  • AIRNet模型使用与代码分析(All-In-One Image Restoration Network)
  • 华为和锐捷设备流统配置
  • 【PPT教程】一键重置幻灯片背景的方法,新建幻灯片带默认背景
  • git的ssh安装,windows通过rsa生成密钥认证问题解决
  • iOS 查看runtime源码的几种方法
  • ffmpeg封装和解封装介绍-(10)综合完成视频重编码为h265,解封装解码编码再封装
  • Android帧绘制流程深度解析 (一)
  • RichSinkFunction 在 Flink IoT 项目中的应用实战
  • Npm发布自己的插件包
  • C语言概述与历史
  • 师彼长技以助己(7)互利回路(上)
  • 五一假期上海境外来沪消费4.55亿元,同比增长211.6%
  • “五一”假期余额不足两天,多地景点已约满、限流
  • 局势紧张之际,伊朗外长下周访问巴基斯坦和印度
  • 人民日报头版头条:青春为中国式现代化挺膺担当
  • “五一”假期首日迎出游高峰:火车站人流“堪比春运”,热门景区门票预订量同比增三成
  • 拍摄《我们这一代》的肖全开展“江浙沪叙事”