第12章 系统性能及语句优化精要.pptVIP

  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章 系统性能及语句优化精要

* 参见王海军P211 * * 《Oracle数据库应用与实践》. 1-* 12 《Oracle数据库应用与实践》 第12章 系统性能及语句优化 复 习 提 问 回顾 影响Oracle数据库性能要素有哪些? Oracle SQL语句处理过程。 引入 如何使用有限的计算机系统资源为更多的用户服务? 如何保证用户的响应速度和服务质量? Oracle SQL优化目的、原则和方法。 复习1:影响数据库系统性能的要素 影响数据库系统性能的要素: 主机CPU,RAM,存储系统; OS参数配置,ORACLE参数配置; 应用方面:数据库设计及SQL编程的质量 一个性能优秀的应用系统需要: 良好的硬件配置; 正确合理的数据库及中间件参数配置;合理的数据库设计; 良好的SQL编程;运行期的性能优化 SQL语句的四个处理阶段 复习2:SQL语句的处理过程 影响数据库系统性能的要素 一、Oracle 数据库性能优化方法 二、Oralce SQL优化原则 三、Oralce SQL语句优化方法 四、Oracle 不合理SQL语句的检查 五、Oracle 查询优化器使用 主要内容 一、Oracle数据库性能优化 1、检查不合理的SQL语句 2、选择优化SQL语句的方法 3、调整数据库性能 4、加快数据检索速度 5、减少磁盘I/O及等待时间 6、防止访问冲突 数据库优化的过程化 效益 设计 开发 上线 设计和开发阶段的优化 – 80%以上 时间 代价 二、SQL优化的一般性原则 目标: 减少服务器资源消耗(主要是磁盘IO); 设计方面: 尽量依赖oracle的优化器,并为其提供条件; 合适的索引,索引的双重效应,列的选择性; 编码方面: 利用索引,避免大表FULL TABLE SCAN; 合理使用临时表; 避免写过于复杂的sql,不一定非要一个sql解决问题; 在不影响业务的前提下减小事务的粒度; 全表扫描 什么叫全表扫描?(Full table scan) 全表扫描问题简单吗? 有的原因简单 有的原因很复杂 全表扫描的危害 大量吞噬硬件尤其是I/O资源 ? 全表扫描语句 非全表扫描语句 响应速度 00:06:10.07 00:00:07.06 内存消耗 3,917M 0.9M I/O消耗 4,411M 2.5M 全表扫描的危害 被迫在硬件上进行大量投入 降低系统的使用寿命 导致技术运用的复杂化 当前表,历史表? 大业务表按年度分别设计表 历史数据迁移? 生产机、查询机? 导致其它相关联的系统问题 全表扫描看似简单,其实后患无穷,是侵蚀整个系统健康的毒瘤! sql 语句的编写原则和优化 随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。 如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句。 三、sql 语句的编写原则和优化 在编写SQL语句时我们应清楚优化器根据何种原则来使用索引,这有助于写出高性能的SQL语句。 SQL语句的编写原则和SQL语句的优化,请跟我一起学习以下几方面: Tunning Tip的各个方面 1.不要让Oracle做得太多; 2.给优化器更明确的命令; 3.减少访问次数; 4.细节上的影响; 基于索引的SQL语句优化 1. IS NULL 与 IS NOT NULL 2. 联接列 3. 带通配符(%)的like语句 4. Order by语句 5. NOT 6. IN和EXISTS 7.用表连接替换EXISTS 8.用EXISTS替换DISTINCT 9.用WHERE替代ORDER BY 10.用UNION替换OR (适用于索引列) 11.用IN来替换OR 查询优化实例及分析——类型不一致查询 类型一致与不一致的查询(总结) 当索引项为数值型的时候,在谓词条件在类型不一致的情况下查询, ORACLE的优化器也可以引用该索引,是因为含有隐式转换。 说明:为了避免ORACLE对你的SQL进行隐式的类型转换, 最好把类型转换用显式表现出来。 例如: SELECT * FROM SERV WHERE ACC_NUBER = 2394701; 转换为下面语句: SELECT * FROM SERV WHERE TO_NUMBER(ACC_NUBER) = 2394701; SELECT * FROM SERV WHERE SERV_ID = 1800093946; 转换为下面语句:

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档