数据库系统原理与应用教程(第二版) 教学课件 作者 7 302 0815 6 ch12.pptVIP

数据库系统原理与应用教程(第二版) 教学课件 作者 7 302 0815 6 ch12.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 查询处理技术 本章概述 对于查询,我们已经不陌生了,前面讲过的许多内容都已经涉及到了查询这个概念。使用关系代数表示各种查询运算,使用Datalog语言表示递归查询,使用SQL语言执行各种查询操作,虽然这些都是与查询处理技术有关的内容,但是这些都是从用户的角度看到的内容。 为了更有效地提高查询语句的效率,我们还需要从系统设计人员的角度出发,看看系统内部是如何分析和处理查询语句的,以便掌握查询处理的核心技术。例如,作为一个数据库专业技术人员,不单单要掌握如何使用一个SQL命令,还需要掌握如何评价该SQL命令的执行效率,了解该命令的执行成本是高还是低,这样才能编写出高效率的查询语句。 本章的学习目标 了解查询处理的基本概念和步骤; 掌握评价查询处理的代价模型和度量指标; 理解和掌握选择运算的处理步骤和评价方式; 理解和掌握连接运算的处理步骤和评价方式; 理解集合和排序运算的处理步骤和评价方式; 了解和掌握处理表达式运算的方法和步骤。 主要内容 12.1 概述 12.2 查询处理的代价模型 12.3 单个关系运算的代价估计 12.4 表达式运算的代价估计 12.5 Microsoft SQL Server系统的查询处理器 12.6 本章小结 12.1 概述 12.2 查询处理的代价模型 下面研究如何构造一个代价模型,利用该模型对各种查询运算的代价进行估计,以便对查询语句进行最优选择。 为了选择最优的查询执行计划,需要对该计划进行代价估计。查询优化器利用存储在数据库管理系统中的统计信息来估计计划代价,这些信息包括关系的相关系统统计信息和索引的相关系统统计信息,分别如表12-1和12-2所示。 12.3 单个关系运算的代价估计 下面我们讨论单个关系运算时如何使用代价模型估计运算的成本,这些运算包括选择运算、连接运算和集合运算等。 选择运算的代价估计 在选择运算中,可以使用下面一些算法,例如,线性搜索、二分法搜索以及利用索引等,对选择运算进行代价估计。 连接运算的代价估计 下面讨论笛卡尔乘积运算、自然连接运算、嵌套循环连接的代价估计。 对于两个关系R和S的笛卡尔乘积,共有nR*nS个元组,每一个元组的字节是sR+sS。根据这些数据可以计算笛卡尔乘积结果集的大小。 对于自然连接运算 对于嵌套循环的条件连接 集合运算的代价估计 要实现并、交、差集合运算,首先需要对两个关系进行排序,然后对每一个已经排序的关系扫描一次,产生所需的结果。 在并集运算时,当同时对两个文件进行扫描且发现有相同元组时,只需要保留其中的一个。在交集运算时,只包含同时出现在两个关系中的元组。如果只保留第一个关系中的那些没有在第二个关系中出现的元组,那么称此运算是差集运算。 对所有这些运算,两个关系只需要扫描一次,因此其代价是bR+bS。 如果关系本身没有排序,那么还需要考虑排序的代价。排序的代价是bR[2logM-1(bR/M)+1],其中M表示内存缓冲区能够容纳的磁盘块数。 12.4 表达式运算的代价估计 前面研究的都是单个关系运算的代价估计,现在考虑如何计算包含多个运算的表达式的代价估计。一种方法是以适当的顺序每次执行一个操作时,每次计算的代价结果被实体化到一个临时关系中以备后用。另外一种方法是在流水线上同时执行多个运算,一个运算结果传递给下一个运算,而不必在临时关系中保存。 下面介绍这两种估计表达式运算的代价的方法。 实体化方法 流水线方法 通过减少查询语句执行过程中产生的临时文件个数,可以提高查询语句的执行效率。减少临时文件的个数可以通过把多个关系的操作组合成一个操作的流水线来实现,即将一个操作结果传送到下一个操作。把操作组合成流水线可以去除读写临时关系的代价。 12.5 Microsoft SQL Server系统的查询处理器 数据库技术的发展,呈现出了两个显著的趋势。一方面,数据库任务的管理和操作愈来愈自动化、智能化,许多以前需要手工完成的操作和配置等数据库管理工作现在都可以使用图形界面工具和向导来完成,大大减轻了用户在数据库管理中的工作量,使用户有更多的时间和精力把自己的工作做得更好。另一方面,对于那些难以实现或者没有必要实现自动化的操作,例如,某些复杂的数据库检索等工作,则尽可能地集中在同样的图形化界面中来完成。这样,在同一个窗口中,用户可以完成更多的不同类型的操作,并且从该窗口中可以得到更多的有价值的信息,可以显著地减少用户在不同窗口之间的转换和查询相关信息的工作量。 关系型数据库管理系统Microsoft SQL Server 体现了这种发展趋势。在其提供的查询处理器中,体现出了集中管理和操作的趋势。 下面介绍该产品提供的查询处理器的特性 特性概述 彩色代码编辑器; 包含了对象浏览器; 可以交互

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档