DBMS自带的查询优化

在DBA或者用户执行SQL时候,首先会经过编译器编译,而编译的过程就就行了物理优化和逻辑优化,最终形成执行计划。

知识-关系代数

逻辑优化的基础是关系代数,关系代数的操作有 1、基本操作 并、差、笛卡尔积、选择、投影、连接。2、扩展操作 交、 θ连接(等值连接 、自然连接)3、扩展复杂操作 除 左外连接 右外连接 全外连接

除操作适合描述这样的语义:sc(学生选课表) s# c# score Course(课程表) c# cname ccredit 求选修了全部课程的学生学号。 Pc#,s#(sc) ➗ Pc#(course) 其中P 代表投影。

关系代数的书写思路:
在这里插入图片描述
除操作说明
在这里插入图片描述

逻辑优化

物理优化主要涉及到的是基本关系代数操作的次序问题。比如尽可能的将选择和投影操作提前。
在这里插入图片描述

逻辑层优化策略

主要有 1、尽可能的将选择操作和投影操作提前。2、将一元操作串接恰里减少关系表的扫描次数。3、将乘积操作后的选择操作与其结合起来作为连接操作,减少中间结果,以及扫描表的次数。
在这里插入图片描述

物理优化

物理查询优化主要是依据代价估算对关系代数操作选择合适的算法和执行次序。 所以说基本关系代数操作次序优化 和代价估算和为基本关系代数选择合适的算法是DBMS 的核心技术。
在这里插入图片描述

为什么要进行物理优化?
在这里插入图片描述

物理查询优化主要是对确定的关系代数表达式的基本操作选择合适的执行方案。衡量指标就是 执行方案所需的I/O次数以及cpu时间等等,那么是如何估算出这些值的呢?主要是根据数据库运行期间的统计信息,一般放在系统目录中或者叫数据字典中。常见的统计信息有表的元组数,磁盘块数,每个磁盘块的字节数等等。

当我们某个表只有几百条数据时,可能使用全表扫描的算法比索引算法更快,当数据量达到几十万条时候如果统计信息不更新,那么就会导致物理查询优化的选择错误。DBA应该对于经常更新的表做统计信息的更新。

物理查询计划理想情况下是寻找最优的查询计划,现实情况是避免最差的查询计划。

important

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值