- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sql server query optimization(sql server查询优化机制)
SQL Server Query Optimization by 王仲远 2007-11-20 Outline 微软教材 ——《SQL Server数据库原理》 SQL Server 查询优化的处理框架 SQL Server 的逻辑优化 SQL Server 的物理优化 Papers —— Prakash Sundaresan (孙博凯) 《SQL Server数据库原理》 ——设计与实现 本书从如何设计数据库管理系统的角度出发,深入介绍了SQL Server 2000的相关内容,目的是希望读者在阅读此书之后,能够学习到像SQL Server 2000这样优秀的数据库管理系统软件的设计与实现技术,进而掌握、提高设计这种大型复杂的系统软件的能力。全书围绕SQL Server 2000的核心部分——体系结构、存储系统、查询处理、并发控制,以及事务管理,分别叙述了各个部分的设计思想、基本算法,以及具体实现。此外,本书还对SQL Server 2000新的扩充部分数据仓库联机分析处理、XML等也作了介绍。 SQL Server查询优化技术 SQL Server查询优化概述 SQL Server的逻辑优化 SQL Server的物理优化 代价计算 其他辅助功能 查询优化概述: 查询优化分类方法 传统查询优化: 代数优化(逻辑优化) 非代数优化(物理优化) 目前的优化方法: 基于代价的方法 基于启发式方法 语义优化 语法优化 查询优化概述: 基于代价的方法和启发式的方法 基于代价的方法:生成所有可能的候选计划,通过统计信息和存取路径确定每一个计划的各个操作的代价和综合代价,选择代价最小的一个。 启发式方法:使用启发式规则减少候选计划。启发式规则如:选择投影尽量下移;尽量让小表先进行连接 现在实际的优化器都倾向于将两种方法结合起来。 查询优化概述:语法优化和语义优化 语法优化:系统根据用户给出的查询语句确定其执行计划。表的次序按用户查询中所给的次序而定。 语义优化:建立在系统对数据库模式有一定理解的基础上,优化器可以利用系统掌握的知识来简化优化。 查询优化概述:新的优化方法 非嵌套化处理:传统的数据库系统处理嵌套查询的方法是TIS(元组迭代法),非嵌套化处理借助关系代数或集合操作,把嵌套形式的查询优化转换成语义上等价的非嵌套形式。 流水线策略:传统的优化模型会产生大量的临时中间结果(通常以临时表的形式存在)。流水线上的操作不是传统的集合,而是元组流,降低I/O开销。 并行查询优化:解决并行环境下的查询优化问题。与传统数据库查询优化有所不同,如:更大的查询有哪些信誉好的足球投注网站空间、优化的未知因素太多。 查询优化概述: Cascades 查询优化器框架 MEMO 结构 Cascades 查询优化器框架 Cascades 查询优化器框架 Cascades 查询优化器框架 Cascades 查询优化器框架 查询优化概述: Cascades 查询优化器框架 MEMO结构 MEMO结构 MEMO的定义:是一种数据结构,用于管理一个组的系统,每个组代表一个查询计划的不同子目标。 MEMO结构的目标:是通过尽可能的公用相同的子树使得内存的使用最小。 MEMO的主要思想:通过使用共享的副本来避免子树的重复使用。 最初计划树以及MEMO结构 MEMO结构中的转换 一旦最初的计划复制到了MEMO结构中以后,就可以对逻辑操作符做一些转换以生成物理操作符。 一个转换规则可以生成: 同一组中的一个逻辑操作符, 如 join( A, B) - join( B, A) 同一组中的一个物理操作符, 如 join - Hash Join 一组逻辑操作符组成一个子计划。根仍保留在原来的组中,而其他操作符分配到其他的组中,必要的时候可以建立新组,如 join( A,join(B,C)) - join( join(A,B),C) MEMO结构的部分扩展 MEMO的最终状态 MEMO查询计划数量计算(1) MEMO查询计划数量计算(2) MEMO查询计划数量计算(3) 以操作符v为根的计划的数量为: 整个查询的计划数量就是以根组中所有操作符为根的计划数的总和: MEMO查询计划数量计算(4) MEMO查询计划数量计算(5) SQL Server查询优化技术 SQL Server查询优化概述 SQL Server的逻辑优化 SQL Server的物理优化 代价计算 其他辅助功能 SQL Server优化模型 SQL Server的优化时间 优化时不但要考虑执行的代价,同样也应该考虑优化的代价。 优化器在意识到不能进一步优化,以及所有进一步的优化甚至将损害性能的时候
文档评论(0)