欢迎光临重庆协创IT国际认证中心!

收藏本站 .网站地图 .联系我们

20年认证人才培训品牌

咨询热线:

023-65111115
023-65111116
  • 重庆协创教育
  • 协创教育_IT培训
  • 协创教育_国际认证
  • previous
  • next
您所在的位置:首页 > 文章集萃

ORACLE优化培训心得

2016-7-28
投稿人:admin

  

  2014.4.23至2014.4.25日,我和费振旭前往杭州参加美创组织的ORACLESQL优化的培训。培训从最基本的原理入手,结合实际案例分析,说明SQL的整个执行过程,以及不合理的SQL设计可能带来的问题。ORACLE数据库提供的大量参数,对于DB性能的影响。运用各种手段,分析并优化SQL,形成一个合理的问题SQL处理优化流程。3天的学习,对我在oracle性能分析上的帮助很大。

  既然是ORACLE优化分析,那我们先了解下那些情况是需要调整优化的,一般来说有以下几点:1)、相关的统计信息丢失,或者没有收集。2)、索引失效或效率低(往往是很多sql问题的诱因)。3)、sql本身效率问题(如使用绑定变量等)

  主要学习内容

  1、SQL优化器

  Oracle的优化器有两种:RBO:基于规则的优化器。CBO:基于代价的优化器

  CBO的思路是让Oracle获取所有执行计划相关的信息,通过对这些信息做计算分析,最后得出一个代价最小的执行计划作为最终的执行计划。从10g开始,Oracle已经彻底丢弃了RBO。

  2、SQL的执行过程

  语法检查:检查此sql的拼写是否语法。

  语义检查:诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。

  对sql语句进行解析:利用内部算法对sql进行解析,生成解析树及执行计划。

  执行sql,返回结果

  3、SQL执行计划

  如果SQL平时执行正常,某些时候突然性能骤降,若排除了系统资源阻塞问题,基本上就是SQL的执行问题,所以,分析SQL的执行计划是SQL优化的重要基础。

  4、统计信息

  统计信息的准确程度,直接决定SQL的效率。所以需要定期的收集相关对象的统计信息。Oracle的Statistic信息的收集分两种:自动收集和手工收集。

  主要优化手段

  1、分析awr报表

  AWR报表是oracle内置工具,收集orace性能相关的统计数据,对于分析oracle运行状态和sql调优有重要意义。

  2、分析统计信息

  统计信息收集了各种数据库对象的详细信息,优化器通过其统计结果来选择合适的执行计划。

  3、索引分析

  索引对DB的性能中起着重要的作用。我们从索引的以下几点来判断:

  (1)索引的选择性:distinct/rows,接近与1,选择性越高。

  (2)索引的扩展:indexsegment是由extents组成,如果extents大于10,可以考虑重建索引。

  (3)索引碎片:查询index_stats表以确定索引中删除的、未填满的叶子(Leaf)行的百分比和height字段。如果索引的叶子行的碎片超过10%,或者index_stats中height>=4,可以考虑对索引进行重建。

  优化处理思路总结

  1、首先,还是要从系统角度出发,排除是否是系统资源问题引起的oracle性能问题。

  2、查看oracle的重要参数配置(主要是sga等),结合系统整理情况分析

  3、查看表的设计(是否建索引,是否索引有使用到)

  4、最后,才是分析SQL语句(执行计划、统计信息、绑定变量)

  TIPS:

  对于oracle的性能优化,是一个漫长的过程,在这个过程中,我们也有很多总结的经验,可以有助于我们养成一个良好的习惯:

  1、对于数据频繁插入删除的表,要关注其平时走的索引是否会失效,可以考虑定期索引重构。

  2、在编写SQL时,避免在有索引的列上使用计算、函数等,会使索引失效。

  3、表关联时,尽量以记录少的表,或者涉及多张表的关联表作为基础表。

  4、尽量少用select*

  5、适当的commit可以提高资源回收效率

  6、Where判断条件有很多注意点,不一一举例,比如>=往往效率大于>。

  培训小结

  通过这次的sql优化培训,理解了sql执行的整个过程,以及影响sql性能的各种因素,并且总结学习一种合理的sql判断过程,对于一些常见的SQL性能问题,有了基本的整理优化能力,提高了DB运维的能力。


您的评论

评论者: 请填写您的姓名,方便我们联系您
评论内容:
请填写您的评论内容, 内容不能超过200字哟!有您的支持,是我们不断前进的动力,感谢您的支持!
  
相关评论更多
Copyright: Chongqing Co-Founder of Network Technology Education Center (c) 2005-2021 All Rights
版权所有:重庆协创IT国际认证中心(c)2005-2011 All Rights 网站备案号:渝ICP备17014127号-1
地址:重庆市沙坪坝区小龙坎新街86号嘉多利广场11-7     联系电话:023-65111115   023-65111116
站长统计 技术支持:重庆网络推广专家