【梳理】数据库系统概论 第9章 关系查询处理和查询优化 9.1 关系数据库系统的查询处理 9.2 关系数据库系统的查询优化 9.3 代数优化 9.4 物理优化

Devart UniDAC 9.1.1 Professional For RAD Studio 11 Alexandria 下载介绍:通用数据库访问组件,提高开发效率 Devart UniDAC 9.1.1 Professional For RAD Studio 11 Alexandria 下载介绍:通用数据库访问组件,提高开发效率 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 Devart UniDAC 9.1.1 Professional For RAD Studio 11 Alexandria 是一套专为 RAD Studio... 阅读详情

教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后

第9章 关系查询处理和查询优化

9.1 关系数据库系统的查询处理

1、RDBMS的查询处理分为四个阶段:
【1】查询分析。
对查询语句进行扫描、词法分析和语法分析,识别SQL关键字、属性名和关系名等语言符号,进行语法检查和分析,即判定查询语句是否合乎语法。若无语法错误,则转入下一步;否则,拒绝执行并报错。
【2】查询检查。
对合法语句进行语义检查,即根据数据字典中有关的模式定义检查语句中的数据库对象,如关系名、属性名是否存在且有效。如果是对视图的操作,则用视图消解方法把对视图的操作转换成对基本表的操作。还要根据数据字典中的用户权限和完整性约束定义对存取权限进行检查。如果用户无相应访问权限或违反完整性约束,就拒绝执行该查询。当然,这时的完整性检查是初步、静态的。检查通过后,SQL查询语句会被转换成等价的关系代数表达式,数据库对象的外部名称也被转换为内部表示。RDBMS一般都用查询树(query tree),也称语法树(syntax tree)来表示扩展的关系代数表达式。
【3】查询优化。
查询优化器通过综合运用各种优化技术,获得最好的查询速度提升效果。
【4】查询执行。
根据优化器得到的执行策略生成查询执行计划,由代码生成器(code generator)生成代码并执行,返回查询结果。

2、选择(select)操作的实现算法主要有:
【1】全表扫描(table scan)。
算法的步骤是:
(1)将一定数量的表的内容读入内存。
(2)检查内存的每个元组,输出满足条件的元组。
(3)如果未读取完毕,重复(1)(2)。
全表扫描算法只需要很少的内存(至少一个块。操作系统为了实现更先进的内存管理,一般都会将内存分成若干个块。物理内存被划分为一小块一小块,每块被称为帧(Frame)。分配内存时,帧是分配时的最小单位,最少也要给一帧。在逻辑内存中,与帧对应的概念就是页(Page)。)对规模小的表,这种算法既简单又有效。但表的元组数量较大且满足条件的元组数量占比较少时,顺序扫描的效率就很低。
【2】索引扫描(index scan)。
如果要求的条件中的属性上建立了索引(如B+树或Hash),可以用索引扫描方法,通过索引先找到满足条件的元组的指针,再通过指针访问基本表中的元组。
一般地,选择率较低时,基于索引的选择算法远远优于全表扫描算法。但在某些极端情形下,例如选择率很高,和/或要查找的元素十分均匀地分布,此时基于索引的选择算法的性能就不一定优于全表扫描。因为除了对表本身的扫描以外,对索引结构的操作和维护是需要额外的时间的。而且,根据索引而进行的访问,在内存空间中一般表现为无序。这种跳跃式的随机内存访问花费的时间显然要比顺序访问多出很多倍。

3、连接(join)操作是查询处理中最常用且最耗时的操作之一。这里简单介绍等值连接(自然连接)常用的几种思想。
【1】嵌套循环(nested loop)。
这是最简单可行的算法。类似于编程语言中的for循环,对若干个表通过这种暴力算法进行连接时,每一层循环查询一个元组时,都要重新检验其内层循环的全部元组是否能够与本层循环正在检验的元组构成符合连接的条件。
【2】排序-合并(归并排序,merge-sort)。
这也是等值连接的常用算法,尤其适合参与连接的各表已经有序的情况。
算法的步骤是:
(1)对参与连接的每一个表,如果未排序,都要将表进行排序。快排可以在O(n log n)的时间复杂度内完成排序。
(2)开始顺序扫描各个表,完成连接。所有参与连接的表都只需要扫描一次。表越大,通过归并排序执行的连接对执行时间的缩短越明显。
【3】索引连接(index join)。
以两张表的等值连接为例,通过索引连接算法进行等值连接,要求第二张表的包含在连接条件中的属性已建立索引。
算法的步骤是:
(1)对第一张表的每一个元组,通过索引查找第二张表中的相应元组。
(2)把这些元组连接起来。
重复执行上述两步,直到第一张表中的元组都处理完毕。
【4】哈希连接(Hash join)。
元组的连接属性被散列函数处理,然后将元组写入哈希表。哈希表采用桶(buck

【免费下载】 联想EDU9.1:网络控制与系统保护的利器 联想EDU9.1:网络控制与系统保护的利器 【下载地址】联想EDU9.1软件ISO下载分享 本仓库提供联想网络控制工具EDU9.1的ISO文件下载。该工具是联想慧盾技术的一部分,专为网络控制系统保护设计。EDU9.1底层工具最好刻录成光盘进行安装,以确保系统的稳定性安全性 ... 阅读详情

相关推荐

refprop物性库_refprop 9.1 下载-refprop(制冷剂物性查询运算软件)附中文教程 9.1 最新免费版 - 河东下载站...

refprop是一款制冷剂运算软件,主要是查询制冷剂的物理性质,适用范围非常广泛,比如航天航空、交通运输、食品加工、生物研究等领域,而refprop又是此类软件的佼佼者,从事制冷相关行业的没有不知道的,具体来说就是先假定一个条件,然后查询它的物理性征,功能非常强大,包含的数据很全面,有国标、欧标、美标等等单位版本,本站提供refprop下载,并附有详细的使用教程,欢迎使用!功能特色1、同类软件的领...

weixin_39755625的博客 3万+

【亲测免费】 仓库管理系统(永久免费)

仓库管理系统(永久免费) 【下载地址】仓库管理系统永久免费 点仓派库存管理系统是一款专为中小型企业设计的免费仓库管理工具,永久免费,无需任何费用。它提供全面的库存管理功能,包括入库、出库、库存盘点报表统计,操作简单,易于上手。系统界面简洁,功能强大,能够有效提升仓库管理效率,满足各种需求。点仓派注重用户隐私安全,不收...

gitblog_06736的博客 1万+

IDM下载管理工具永久免费使用终极指南

Internet Download Manager(IDM)作为业界领先的下载加速软件,其强大的多线程下载能力智能文件管理功能深受用户青睐。然而,商业授权费用往往让许多用户望而却步。本指南将为您详细介绍一款开源激活脚本,帮助您实现IDM的永久免费使用。 ## 技术实现原理深度解析 该激活脚本采用先进的注册表锁定机制,通过智能识别IDM生成的注册表键值,并采用锁定技术防止其被修改。当IDM存储

gitblog_00704的博客 1万+

数据库系统概论》| 第九 关系查询处理优化 知识梳理

关系查询处理优化 目录 关系查询处理优化 9.1   关系数据库系统查询处理 9.2   关系数据库系统查询优化 9.3  代数优化  查询树的启发式优化 9.4  物理优化       1查询处理步骤 2查询树的启发式优化规则(P284) 习题:P290 5 综合题   9.1   关系数据库系统查询处理   9.2   关系数据库系统...

12 26 25 的博客 4442

停下!吊打全网的MySQL,可以定级P7的进阶面试突击

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题: 如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用?帮忙转发一下,关注后添加助理vx:yunduoa2019或扫描下图二维码,跟随助理指引自行获取 为了解答MySQL 体系架构、InnoDB 执行流程、索引优化等问题,这里给大家推荐的这份【MySQL进阶面试突击】,特别适合对 MySQL索引调优、事务优化等进...

文章中资料均可获取,有需要请添加yunduoa2019即可 165

凭借一份吊打全网的MySQL进阶面试突击,我成功入职阿里定级了P7

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题: 如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用?帮忙转发一下,关注后添加助理vx:yunduoa2019或扫描下图二维码,跟随助理指引自行获取 为了解答MySQL 体系架构、InnoDB 执行流程、索引优化等问题,这里给大家推荐的这份【MySQL进阶面试突击】,特别适合对 MySQL索引调优、事务优化等进...

weixin_50666791的博客 153

走过路过千万别错过!吊打全网的MySQL进阶面试突击,吃透最少阿里P7

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题: 如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用? 需要获取得话麻烦一键三连+评论,然后添加VX(tkzl6666)即可免费领取 为了解答MySQL 体系架构、InnoDB 执行流程、索引优化等问题,这里给大家推荐的这份【MySQL进阶面试突击】,特别适合对 MySQL索引调优、事务优化等进阶内容掌握不系统.

一入Java深似海 224

阿里P7岗面试问到MySQL居然能问到这个深度,你能回答上来吗?

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题: 如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用? 为了解答MySQL 体系架构、InnoDB 执行流程、索引优化等问题,这里给大家推荐的这份【MySQL进阶面试突击】,特别适合对 MySQL索引调优、事务优化等进阶内容掌握不系统的朋友。 就 MySQL 系统架构、执行流程、索引原理、性能分析、事务锁原理等做出深.

Java0258的博客 160

停一停先别划走,吊打全网的MySQL进阶面试突击,吃透最少阿里P7

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题:如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用?为了解答等问题,这里给大家推荐的这份【】,特别适合对 MySQL索引调优、事务优化等进阶内容掌握不系统的朋友。就 MySQL 系统架构、执行流程、索引原理、性能分析、事务锁原理等做出深入浅出的解读,进而帮你搭建起 MySQL 的底层知识框架,夯实常用技能点。

知识分享官 972

太牛了!吊打全网的MySQL进阶面试突击,吃透最少阿里P7

网上有不少关于 MySQL 调优的文,之前也发过一些。但不少朋友反映依旧对 MySQL 底层原理及架构这些内容一知半解,没有吃透,总是会遇到不少问题: 如何提高查询语句性能?如何突破单库性能瓶颈?如何做到数据库的高并发与高可用? 为了解答 MySQL 体系架构、InnoDB 执行流程、索引优化等问题,这里给大家推荐的这份【MySQL进阶面试突击】,特别适合对 MySQL索引调优、事务优化...

xingduan5153的博客 745

mysql 触发器 性能_停一停先别划走!吊打全网的MySQL进阶面试突击,吃透最少阿里P7...

网上有很多关于 MySQL 调优的文,以前也发过一些。但很多朋友反映依旧对 MySQL 底层原理及架构这些内容只知其一;不知其二,没有吃透,老是会遇到很多问题:面试如何提升查询语句性能?如何突破单库性能瓶颈?如何作到数据库的高并发与高可用?数据库须要获取得话麻烦一键三连以后看下图小助理的微信:(vip1024x)添加便可免费获取到哦性能优化 为了解答MySQL 体系架构、InnoDB 执行流...

weixin_42639633的博客 334

KopSoftWMS:基于.NET 9.0的终极免费仓库管理解决方案完整指南

KopSoftWMS是一款基于.NET 9.0开发的现代化仓库管理系统,为企业提供完整的仓储管理解决方案。这个免费开源的WMS系统集成了入库管理、出库管理、库存盘点、移库管理等多个核心模块,帮助企业实现仓储作业的数字化、智能化管理。🚀 ## ✨ 为什么选择KopSoftWMS? KopSoftWMS具备以下突出优势: - **完全免费开源** - 无需支付任何授权费用 - **现代化技术栈

gitblog_00926的博客 1万+

【亲测免费】 推荐一款实用的永久免费仓库管理系统WMS软件

推荐一款实用的永久免费仓库管理系统WMS软件 【下载地址】推荐一款实用的永久免费仓库管理系统WMS软件 点仓派库存管理系统是一款永久免费的仓库管理解决方案,适用于自动化立体仓库、普通人工仓库、进销存管理及三方物流仓库等多种场景。其设计简洁直观,操作便捷,运行稳定可靠,能够有效提升仓储管理效率,降低运营成本。系统包含数据库...

gitblog_06782的博客 1万+

MySQL 9.1 发布!引入了关键更新,包括增强的触发器处理

MySQL 9.1 是全球最受欢迎的开源关系数据库管理系统(RDBMS)之一,广泛应用于各种规模的企业中。此次新版本的发布引入了诸多新的功能、重要的优化改进以及一些功能的弃用。MySQL 9.1 的重点更新包括改进的触发器处理方式、优化的EXPLAIN命令输出、增加对 OpenID Connect 认证的支持、崩溃安全的数据库操作等,极大地提升了性能、灵活性安全性。

网络技术联盟站 2万+

终极指南:如何快速部署免费开源的WMS仓库管理系统

想要优化仓库管理效率却受限于高昂的软件成本?KopSoftWMS作为一款基于.NET 9.0开发的免费开源WMS仓库管理系统,为企业提供了完整的仓储解决方案。这个强大的仓库管理系统不仅功能全面,还支持多种数据库,让您的物流管理更加智能化、高效化。🚀 ## ✨ 为什么选择KopSoftWMS? **完全免费开源** - 无需支付任何授权费用,企业可以自由使用定制 **现代化技术栈** -

gitblog_00962的博客 3570
上一篇: 【梳理】离散数学 第16章 树 16.1 无向树及其性质 16.2 生成树 16.3 根树及其应用
下一篇: 【C / C++】const int *,int * const,int const *,int const * const 的区分技巧
山上一缕烟
博客等级 码龄7年 269粉丝 498原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值