第八章 索引及查询优化.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 索引及查询优化 本章要点: 掌握索引的概念、分类。 熟悉索引的方法。 掌握T-SQL索引语句。 了解查询优化的一般准则。 了解查询优化算法。 掌握简单查询设计方法。 内容提要: 8.1 索引 8.1.1聚集索引 8.1.2非聚集索引 8.1.3索引查询效率实例分析(了解) 8.1.4索引结构(了解) 8.1.5SQL server 2000索引的应用 8.2 查询优化 8.2.1查询优化概述 8.2.2查询优化准则 8.1.3索引查询效率实例分析(有兴趣者自习) 8.1.4索引结构 实例分析:求选修了课程号为‘002’的学生姓名。? SELECT s.Sname FROM Student s, SC WHERE s.Sno=SC.Sno AND SC.Cno=002; 设Student:1000条,SC:10000条, 选修’002’号课程:50条。 读写速度:20块/秒。 每个磁盘块装10条student记录或是100条SC记录,或是5条结果记录。 设在内存中存放5块student元组和1块SC元组。 执行策略1 Q1=Пsname(бStudent.Sno=SC.Sno∧SC.Cno= 002 (Student×SC))? 考查Student×SC 读取总块数= 读Student表块数 + 读SC表遍数*每遍块数 ?=1000/10+(1000/(10×5)) ×(10000/100) =100+20×100=2100 读数据时间=2100/20=105秒 8.2.2 查询优化准则 (1)选择运算应尽可能先做 ; ? (2)把笛卡尔积和随后的选择操作合并成连接运算。 (3)在执行连接操作前对关系适当进行预处理 按连接属性排序 在连接属性上建立索引? (4)投影运算和选择运算同时做 目的:避免重复扫描关系 (5)公共子表达式的值只计算一次(即提取公共表达式)。 某些选择运算+笛卡尔积 === 连接运算 例:бStudent.Sno=SC.Sno (Student×SC) ? ? Student?SC 3、删除索引语句 DROP INDEX 表名.索引名 [例-2] 删除Student表的Stusname索引。 DROP INDEX Student .Stusname; 5、显示索引 Sp_helpindex报告有关表或视图上的索引信息。 6、使用企业管理器创建与维护索引 选择“索引/键”选项卡。 返回 8.2查询优化 8.2.1查询优化概述 1、查询关系数据语言的级别很高,使DBMS可以从关系表达式中分析查询语义,因此使得查询优化变为可能,查询优化极大地提高RDBMS的性能。 系统可以比用户程序的优化做得更好: (1)优化器可以从数据字典中获得许多统计信息,而用户程序难以获得这些信息。 (2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。 (3)优化器可以考虑百种不同执行计划,而程序员仅考虑有限的几种可能。 (4)优化器中包括了很多复杂的优化技术。 3、关系系统(关系数据库系统的简称)的定义 一个数据库管理系统可定义为关系系统,当且仅当它至少支持: 1. 关系数据库(即关系数据结构) 系统中只有表这种结构。 2. 支持选择、投影和(自然)连接运算 对这些运算不要求用户定义任何物理存取路径。 对关系系统的最低要求。 4、关系系统的分类 ? 数据结构 S(structure) 数据操作 M(Manipulation) 完整性 I(Integrity) 表式系统 表 ? ? (最小)关系系统 表 选择、投影、连接 ? 关系完备的系统 表 选择、投影、连接等所有关系代数操作 ? 全关系系统 表 选择、投影、连接 ? 分类 (最小)关系系统如:FoxBASE,FoxPro,Accese ?查询优化主要解决两个方面的问题: 1)在关系代数级进行优化,力图找出与给定表达式等价,执行效率更高的一个表达式; 2)涉及查询语句处理的详细策略的选择。 ?查询的处理过程: 查询 扫描和语法检查 查询优化 查询的内部表示(语法树) 查询的执行计划 查询代码生成 执行查询计划代码 查询结果 查询执行 5、代价模型 集中式数据库 单用户系统 总代价 = I/O代价 + CPU代价 多用户系统 总代价 = I/O代价 +

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档