问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle执行计划

发布网友 发布时间:2023-02-11 08:25

我来回答

1个回答

热心网友 时间:2023-04-24 13:30

每步都是一次单独的I/O,但是对于索引,由于经常使用,绝大多数都已经CACHE到内存中,所以第一步的I/O经常是逻辑I/O,即数据可以从内存中得到。但对于第二部来说,如果表比较大,则其数据不可能全在内存中,所以其I/O很有可能是物理I/O,这是一个机械操作,相对逻辑I/O来说,极其费时间。所以如果对大表进行索引扫描,取出的数据如果大于总量的5%-10%,使用索引扫描效率会下降很多。但是如果查询的数据能全在索引中找到,就可以避免进行第二步操作,避免了不必要的I/O,此时即使通过索引扫描取出的数据比较多,效率还是很高的。再者,如果sql语句中需要对索引列进行排序,因为索引已经预先排序好了,所以在执行计划索引进行排序。
根据索引的类型和where*条件的不同,一般有如下4中类型的索引扫描:

Join是一种试图将两个表结合在一起的谓词,一次只能连接两个表。Join可以并行的读取两个连接的表的数据,但将表中符合*条件的数据段读入内存形成row source后,join的其它步骤一般都是串行的。
目前为止,典型的join连接类型有3中:

如果row source已经在关联列上被排序,则该连结操作就不需要再进行sort操作,这样可以大大提高这种连接操作的连接速度,因为排序是个极其耗费资源的操作。预先排序的row source包括已经被索引的列或row source已经在前面的步骤中被排序了。另外,尽管合并两个row source的过程是串行的,但是可以并行访问这两个row source(如并行读入数据,排序)。
排序是一个费时,费资源的操作,基于这个原因,SMJ通常不是一种有效率的连接方式,但当row source已经排好序的前提下,SMJ的效率还是很可观的。

各连接方法试用的场景:

参考文献
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 怎么改电脑开机声音 观复嘟嘟一共几集 卫生中级考试学历怎么核验 HP NR114路由器连接好所有设备后,网页无法打开192.168.1.1进行路由... 小程序会退回首页怎么回事 怎么定时器指令是在s端上升沿启动定时器开始工作的 启动定时器t1的语句是 北京美术培训机构有哪些 杭州好的美术培训机构 qq游戏2d桌球怎么观战的 双燃气灶一个点火一个不点火的原因和解决办法 三星c5000开机屏幕暗有横条纹 腾讯桌球吸球怎么打 如何自学绘画零基础 弓箭手大作战钉钉代码是什么呀 我男的20岁了,腿太长了感觉劈叉劈不下去痛死了怎么练 宗姓和纵姓啥关系 四川师范大学英语三级问题 留所服刑释放查询未找到查询数据怎么办 sap科目显示没有相应数据 oracle 10g 创建过程 实例 如下! 我想知道如何在access和excel间进行数据转换? 崛起大小金和血量有关吗 iPhone手机qq登不上 PSP 怪物猎人2G 红速龙王的小金在哪打 抖音短视频评论置顶方法介绍 还是怪物猎人p3大小金问题 黄花梨算盘真品图片,价值千万的高古玉图片 跪求葬玉高古玉专家评估一下这是块玉,我爷爷留下来的我都收藏了快30年... 有这样白的玉器吗? 这是高古玉锁吗?要是真的 值多少钱! 怪物猎人世界开挂刷金币和点数可以解锁成就吗 哔哩哔哩实名认证跳过了会怎么样 投屏一卡一卡的是什么原因? 求夕阳无限好乐琴谱 最好唔系.ove 因为我开唔到 十年笛子演奏教学教学简谱? 钢琴简谱1弹几拍 大学学位证有什么用 申请学士学位有什么用 个人社会信用代码怎么查询