- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 图4.2 有聚集索引时执行情况 数据库技术及应用 华中科技大学管理学院 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 第四章 查询优化 查询优化是提高查询效率和系统性能的关键。本章介绍查询优化的重要性,查询优化的基本方法和技术,重点是使用SQL时常用的查询优化方法。 主要内容 4.1 查询优化概述 4.2 基于索引的优化技术 4.3 SQL中常用的优化规则 4.1 查询优化概述 SQL语句优化的主要原因 (1)SQL语句的效率对数据库系统的性能起到了决定性的作用。 (2)SQL语句消耗了70%~90%的数据库资源,所以要优化SQL语句,合理使用数据库资源。 (3)对SQL语句进行优化不会影响程序逻辑,SQL语句的优化在时间成本和风险上的代价都很低。 (4)不需要硬件的投资和额外的开销,但却会产生明显的效果。 (5)采用好的查询策略会给查询技术带来极大的优化,还可以节省极大的经济开销。 4.2 基于索引的优化技术 4.2.1 聚集索引和非聚集索引 聚集索引可以实现以最快的速度缩小查询范围和最快的速度进行字段排序,这对于范围查询和查询中的数据必须被排序来匹配聚集键的情况而言是非常有用的。 非聚集索引更适于处理从表中只返回一行或几行的查询。 例4-2 在Card表中,查询饭卡余额在150到200之间的饭卡。 执行这个查询的SQL语句如下: SELECT * FROM Card WHERE Balance BETWEEN 150 AND 200 当Card表上的Balance列上有非聚集索引时,这条语句的执行时间如图4.1所示。 删除Card表上的Balance列上的非聚集索引,建立聚集索引重新执行例4-2,这时SQL语句的执行时间如图4.2所示。 图4.1 有非聚集索引时执行情况 图4.2 有聚集索引时执行情况 4.2.2 合理使用索引 1)在经常被作为查询条件使用的列上建立索引 2)在频繁进行排序或分组的列上建立索引 3)在值域很大的列上建立索引 4)当数据表更新大量数据时,删除并重建索引可以提高更新速度 5)组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 6)在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。 1)在经常被作为查询条件使用的列上建立索引 例4-3 利用消费记录表Table_Salebill,统计每张饭卡的消费总额。 SELECT S.CardID,SUM(Payamount) FROM Table_Card1 C JOIN Table_Salebill S ON C.CardID=S.CardID GROUP BY S.CardID 图4.3 饭卡号列上都没有索引的执行情况 图4.4 饭卡号列上都有索引的执行情况 2)在频繁进行排序或分组的列上建立索引 例4-4 查询每个学院的学生数目。 SELECT School,COUNT(*) FROM Table_Student GROUP BY School 图4.5 School上无索引的执行情况 图4.6 School上有索引的执行情况 3)在值域很大的列上建立索引 例4-6 查询Card表中余额少于5元的饭卡号和余额。 SELECT CardID,Balance FROM Table_card1 WHERE balance5 图4.9 Balance上无索引的执行情况 图4.10 Balance上有索引的执行情况 4)当数据表更新大量数据时,删除并重建索引可以提高更新速度 例4-8:已知学生表中有一百万条数据,若再向该表中插入十万条数据。 学生表中的已经建立的索引对效率影响很大。 图4.11 Sex上无索引的执行情况 图4.12 Sex上有索引的执行情况 5)组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 例4-9 查询学院“1”内的男生数量。 SELECT COUNT(*) FROM Table_Student WHERE School=1 AND Sex=M 图4.13 School和Sex上有组合索引的执行情况 图4.14 Sname和CardID上有组合索引的执行情况 6)在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。 比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就没必要建立索引。 例4-10 查询“挂失”的饭卡的饭卡号及余额。 SELECT CardID ,Balance FROM Table_Card WHERE State=1 图4.15 S
您可能关注的文档
- 企业经营管理基础知识 作者 行建海 7.ppt
- 人际关系与沟通 作者 张文光 第四章 人际关系的艺术.ppt
- 上机练习 练习素材.ppt
- 射线检测 作者 张小海 4-1 射线与物质的相互作用.ppt
- 施工组织设计 作者 张洁 施工组织设计.ppt
- 市场调查与预测 作者 王玉华 3、4、5市场调查的方法.ppt
- 数据仓库与数据挖掘技术 作者 夏火松 数据仓库与数据挖掘技术教案(1-5章).ppt
- 数据仓库与数据挖掘原理及应用(第二版) 作者 王丽珍 周丽华 陈红梅 第2章.ppt
- 数据仓库与数据挖掘原理及应用(第二版) 作者 王丽珍 周丽华 陈红梅 第5章.ppt
- 数据仓库与数据挖掘原理及应用(第二版) 作者 王丽珍 周丽华 陈红梅 第7章.ppt
最近下载
- 元气森林的商业模式.docx VIP
- 数字中国建设整体布局规划.pptx VIP
- 初中道德与法治教学:八年级下册《道德与法治》知识清单.doc
- 2024年民主生活会“带头增强党性、严守纪律、砥砺作风”方面问题起草指南、实例和素材.docx VIP
- CNAS-CL02-A001医学实验室质量和能力认可准则的应用要求.pdf
- 2025年陕西铁路工程职业技术学院单招职业适应性测试题库及一套答案.docx VIP
- 2025年陕西铁路工程职业技术学院单招职业适应性测试题库及一套完整答案.docx VIP
- 2025年陕西机电职业技术学院单招职业适应性测试题库及一套完整答案.docx VIP
- 谈基层连队经费管理中存在的问题及对策.docx VIP
- 儿科学(第四版)课件 第13章第二节 葡萄糖-6-磷酸脱氢酶缺乏症.ppt VIP
文档评论(0)