ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DBMS自带的查询优化

2021-07-24 13:32:08  阅读:179  来源: 互联网

标签: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

在这里插入图片描述

标签:DBMS,查询,操作,自带,代数,优化,连接,物理
来源: https://blog.csdn.net/mmmmhello/article/details/119056748

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有