Oracle DBA做SQL优化的最佳思路

原创 2013年12月04日 11:00:54
如何在 Oracle数据库里写出高质量的SQL语句,如何在Oracle数据库里对有性能问题的SQL做诊断和调整,这是DBA们在ORACLE数据库实践中不可避免的难题。下面就让我们来分析一下拿到一条问题sql后我们可以如何去开始我们的优化思路。


对于有问题的SQL做SQL优化的具体步骤一般为:
1、查看该SQL语句的执行计划,并结合其资源消耗情况和相关统计信息、Trace文件来分析其执行计划是否合理;
2、通过修正措施(如调整该SQL的执行计划等)来对该SQL做调整以缩短其执行时间,Oracle数据库里SQL优化的终极目标就是要缩短目标SQL语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择:
1、降低目标SQL语句的资源消耗;
2、并行执行目标SQL语句;
3、平衡系统的资源消耗。


方法1:降低目标SQL语句的资源消耗”以缩短执行时间,这是最常用的SQL优化方法。这种方法的核心是要么通过在不更改业务逻辑的情况下改写SQL来降低目标SQL语句的资源消耗,要么不改SQL但通过调整执行计划或相关表的数据来降低目标SQL语句的资源消耗。
方法2:并行执行目标SQL语句”,这实际上是以额外的资源消耗来换取执行时间的缩短,很多情况下使用并行是针对某些SQL的唯一优化手段。
方法3:平衡系统的资源消耗” 可以避免不必要的资源争用所导致的目标SQL语句执行时间的增长。对某些SQL而言,其执行时间的增长或者不稳定(时快时慢)不是由于其执行计划的问题,而是由于在目标SQL执行时系统处于高负荷状态,执行目标SQL所需要的硬件资源(CPU、内存、IO等)得不到保障,存在争用的情况。在这样的情况下,如果我们能平衡系统的资源消耗,把一些跟目标SQL同时执行的不重要但很消耗系统资源的操作(如报表、批处理等)挪到系统不忙的时候执行,比如把它们挪到晚上执行,那么就可以释放部分系统硬件资源以确保目标SQL执行时所需要的硬件资源不再存在争用的情况,进而就避免了其执行时间的增长或者不稳定。

相关文章推荐

如何使用 orachk 工具

Oracle RAC 安装完毕后的健壮性是一个令人头疼的问题。之前Oracle为之专门推出了raccheck工具,确实方便了我们这些个苦逼的DBA。现在Oracle在raccheck的基础之上又推出了...

Oracle行迁移和行链接

行迁移和行链接都会导致Oracle性能下降,这篇文章将介绍什么是行迁移和行链接,它们带来的问题,如何来判断它们,并提供了解决它们的办法。 什么是行迁移和行链接 行迁移 Oracle的数据块会保留...

高级SQL优化(二) ——《12年资深DBA教你Oracle开发与优化——性能优化部分》

充分利用索引 索引的限制 1. 索引对不等号和NOT的限制   如果WHERE条件中出现!=或者 Oracle 10g起,在基于CBO的优化器模式下Oralce会进行自动优...

dba-oracle-sql优化.

  • 2011年07月05日 14:46
  • 72KB
  • 下载

Oracle DBA日常巡检最佳实践

  • 2017年06月30日 10:10
  • 1.66MB
  • 下载

Oracle DBA常用SQL汇总

#查找被锁的对象: select p.spid,        c.object_name,        b.session_id,        b.oracle_username,  ...

oracle dba 用的最多的sql语句

常用SQL查询:   1、查看表空间的名称及大小   select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size fr...

MySQL DBA SQL开发最佳实践

  • 2017年07月28日 16:44
  • 1.24MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle DBA做SQL优化的最佳思路
举报原因:
原因补充:

(最多只允许输入30个字)