|
1 请讲述你在实际工作中最满意的一次oracle性能诊断经过?
个人偏向SQL方面优化,最满意的一次:应该是业务系统出现HANG住现象(平常2分钟的业务操作要2个小时以上),找DBA,业务,项目经理都没有找到具体原因;
我定位原因1:视图嵌套视图,执行计划混乱;
原因2:视图中一个表本身大小和索引大小的比较,大量的删除和插入动作,导致索引太大;查询缓慢;
解决方法:1.添加提示,2备份,再删除重建表;
其次安全2 是OGG同步过来的大表(头表1亿和行表5亿以上,没有按时间 和其它业务分区,要搞分区又怕影响OGG),抽取数据要1个小时,因为关联表比较多,改写是不容易的;
最后尝试在这两个大表上建组合索引,那个时候什么都不怕(反正是测试环境),什么位图索引,压缩索引都没什么效果,
最后花了一周时间 :创建组合索引成功,抽取数据5分钟以内,性能大幅提高;
2 请讲述你认为的oracle性能诊断和Oracle开发之间的关系
我是开发出身的,慢慢的搞优化;开发是基础,对SQL了解的程度有时决定 处理性能问题的速度;比如开发者常犯的错误:乱用ORDER BY,DISTINCT,
函数转换(UPPER),大量的标量子查询,调用复杂的FUNC函数,多次引用大表等等;
3 请讲述你在oracle性能诊断方面的失误及教训
这方面比较谨慎,优化的东西都要经过开发测试,测试人员测试,所以有保障;没有出过问题;
4 请推荐你在oracle性能诊断方面使用的工具 ;
直接看SQL跑的执行计划,OEM中的执行计划; |
|