欢迎来到天天文库
浏览记录
ID:50485527
大小:90.00 KB
页数:24页
时间:2020-03-09
《数据库系统原理与应用教程(第二版) 教学课件 作者 7-302-0815-6ch12.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12章查询处理技术本章概述本章的学习目标主要内容1本章概述对于查询,我们已经不陌生了,前面讲过的许多内容都已经涉及到了查询这个概念。使用关系代数表示各种查询运算,使用Datalog语言表示递归查询,使用SQL语言执行各种查询操作,虽然这些都是与查询处理技术有关的内容,但是这些都是从用户的角度看到的内容。为了更有效地提高查询语句的效率,我们还需要从系统设计人员的角度出发,看看系统内部是如何分析和处理查询语句的,以便掌握查询处理的核心技术。例如,作为一个数据库专业技术人员,不单单要掌握如何使用一个SQL命令,还需要掌握如何评价该SQL命令的执行效率,了解该
2、命令的执行成本是高还是低,这样才能编写出高效率的查询语句。2本章的学习目标了解查询处理的基本概念和步骤;掌握评价查询处理的代价模型和度量指标;理解和掌握选择运算的处理步骤和评价方式;理解和掌握连接运算的处理步骤和评价方式;理解集合和排序运算的处理步骤和评价方式;了解和掌握处理表达式运算的方法和步骤。3主要内容12.1概述12.2查询处理的代价模型12.3单个关系运算的代价估计12.4表达式运算的代价估计12.5MicrosoftSQLServer系统的查询处理器12.6本章小结412.1概述5主要内容12.1概述12.2查询处理的代价模型12.3单个关系
3、运算的代价估计12.4表达式运算的代价估计12.5MicrosoftSQLServer系统的查询处理器12.6本章小结612.2查询处理的代价模型下面研究如何构造一个代价模型,利用该模型对各种查询运算的代价进行估计,以便对查询语句进行最优选择。为了选择最优的查询执行计划,需要对该计划进行代价估计。查询优化器利用存储在数据库管理系统中的统计信息来估计计划代价,这些信息包括关系的相关系统统计信息和索引的相关系统统计信息,分别如表12-1和12-2所示。7主要内容12.1概述12.2查询处理的代价模型12.3单个关系运算的代价估计12.4表达式运算的代价估计1
4、2.5MicrosoftSQLServer系统的查询处理器12.6本章小结812.3单个关系运算的代价估计下面我们讨论单个关系运算时如何使用代价模型估计运算的成本,这些运算包括选择运算、连接运算和集合运算等。9选择运算的代价估计在选择运算中,可以使用下面一些算法,例如,线性搜索、二分法搜索以及利用索引等,对选择运算进行代价估计。10连接运算的代价估计下面讨论笛卡尔乘积运算、自然连接运算、嵌套循环连接的代价估计。对于两个关系R和S的笛卡尔乘积,共有nR*nS个元组,每一个元组的字节是sR+sS。根据这些数据可以计算笛卡尔乘积结果集的大小。对于自然连接运算对
5、于嵌套循环的条件连接11集合运算的代价估计要实现并、交、差集合运算,首先需要对两个关系进行排序,然后对每一个已经排序的关系扫描一次,产生所需的结果。在并集运算时,当同时对两个文件进行扫描且发现有相同元组时,只需要保留其中的一个。在交集运算时,只包含同时出现在两个关系中的元组。如果只保留第一个关系中的那些没有在第二个关系中出现的元组,那么称此运算是差集运算。对所有这些运算,两个关系只需要扫描一次,因此其代价是bR+bS。如果关系本身没有排序,那么还需要考虑排序的代价。排序的代价是bR[2logM-1(bR/M)+1],其中M表示内存缓冲区能够容纳的磁盘块数
6、。12主要内容12.1概述12.2查询处理的代价模型12.3单个关系运算的代价估计12.4表达式运算的代价估计12.5MicrosoftSQLServer系统的查询处理器12.6本章小结1312.4表达式运算的代价估计前面研究的都是单个关系运算的代价估计,现在考虑如何计算包含多个运算的表达式的代价估计。一种方法是以适当的顺序每次执行一个操作时,每次计算的代价结果被实体化到一个临时关系中以备后用。另外一种方法是在流水线上同时执行多个运算,一个运算结果传递给下一个运算,而不必在临时关系中保存。下面介绍这两种估计表达式运算的代价的方法。14实体化方法15流水线
7、方法通过减少查询语句执行过程中产生的临时文件个数,可以提高查询语句的执行效率。减少临时文件的个数可以通过把多个关系的操作组合成一个操作的流水线来实现,即将一个操作结果传送到下一个操作。把操作组合成流水线可以去除读写临时关系的代价。16主要内容12.1概述12.2查询处理的代价模型12.3单个关系运算的代价估计12.4表达式运算的代价估计12.5MicrosoftSQLServer系统的查询处理器12.6本章小结1712.5MicrosoftSQLServer系统的查询处理器数据库技术的发展,呈现出了两个显著的趋势。一方面,数据库任务的管理和操作愈来愈自动
8、化、智能化,许多以前需要手工完成的操作和配置等数据库管理工作现在都可以使用图形界
此文档下载收益归作者所有