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

Oracle之执行计划

1、查看执行计划

EXPLAIN PLAN FOR SELECT * FROM temp_1 a ;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

2、执行计划说明

2.1、执行顺序

根据缩进来判断,缩进最多的最先执行;(缩进相同时,最上面的最先执行)

2.2、常见表访问方式

2.2.1、TABLE ACCESS FULL(全表扫描)

Oracle会读取表中所有的行,并检查每一行是否满足SQL语句中的 Where 限制条件;
全表扫描时可以使用多块读(即一次I/O读取多块数据块)操作,提升吞吐量;
使用建议:数据量太大的表不建议使用全表扫描,除非本身需要取出的数据较多,占到表数据总量的 5% ~ 10% 或以上

2.2.2、TABLE ACCESS BY INDEX SCAN(索引扫描)

索引扫描方式说明
INDEX UNIQUE SCAN(索引唯一扫描)表中某字段存在 UNIQUE、PRIMARY KEY 约束时,Oracle常实现唯一性扫描,每次至多只返回一条记录
INDEX RANGE SCAN(索引范围扫描)在唯一索引列上使用了范围操作符(如:> < <> >= <= between);在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描);对非唯一索引列上进行的任何查询
INDEX FULL SCAN(索引全扫描)它依赖数据库对象的统计信息,统计信息的准确与否会影响CBO做出最优的选择
INDEX FAST FULL SCAN(索引快速扫描)与 INDEX FULL SCAN 类似,但是一个显著的区别是它不对查询出的数据进行排序
INDEX SKIP SCAN(索引跳跃扫描)表有一个复合索引,且在查询时有除了前导列(索引中第一列)外的其他列作为条件,并且优化器模式为CBO时;当Oracle发现前导列的唯一值个数很少时,会将每个唯一值都作为常规扫描的入口,在此基础上做一次查找,最后合并这些查询

2.2.3、TABLE ACCESS BY ROWID(通过ROWID的表存取)

行的ROWID指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID可以快速定位到目标数据上,这也是Oracle中存取单行数据最快的方法

2.3、表连接方式

表连接方式说明
SORT MERGE JOIN(排序-合并连接)表无驱动顺序;排序-合并连接适用的连接条件有” < <= = > >= “,不适用的连接条件有” <> like“
NESTED LOOPS(嵌套循环)嵌套循环的表有驱动顺序,注意选择合适的驱动表。其好处是可以先返回已经连接的行,而不必等所有的连接操作处理完才返回数据,这样可以实现快速响应
HASH JOIN(哈希连接)哈希连接只适用于等值连接(即连接条件为 = )
CARTESIAN PRODUCT(笛卡尔积)笛卡尔乘积是一个表的每一行依次与另一个表中的所有行匹配
http://www.lryc.cn/news/123696.html

相关文章:

  • 【Vue框架】菜单栏权限的使用与显示
  • 案例研究|大福中国通过JumpServer满足等保合规和资产管理双重需求
  • 大数据课程I4——Kafka的零拷贝技术
  • 红日ATT&CK VulnStack靶场(三)
  • JavaScript之BOM+window对象+定时器+location,navigator,history对象
  • 为MySQL新增一张performance_schema表 | StoneDB 技术分享会 #4
  • 2023/8/12总结
  • win10电脑npm run dev报错解决
  • 如何使用PHP编写爬虫程序
  • 分布式 - 服务器Nginx:一小时入门系列之HTTP反向代理
  • Android Fragment (详细版)
  • 如何使用Flask-RESTPlus构建强大的API
  • UGUI事件系统EventSystem
  • redis学习笔记(三)
  • Go语言template模板语法
  • Python-OpenCV中的图像处理-物体跟踪
  • 本地Linux 部署 Dashy 并远程访问教程
  • 6.2 口令破解攻击
  • SSL账号申请及配置
  • JS代码混淆加密有什么用?
  • Oracle的function執行DML操作
  • 大语言模型:LLM的概念是个啥?
  • 21 | 朝阳医院数据分析
  • 二十二、责任链模式
  • opencv,opengl,osg,vulkan,webgL,opencL,cuda,osg,vtk,ogre的区别
  • 基于颜色进行轮廓分割,基于opencv和python
  • TCP重连 - 笔记
  • Qt画波浪球(小费力)
  • 监控Kubernetes Node组件的关键指标
  • Mysql之优化-主从复制