Oracle DBA做SQL优化的最佳思路

作者 : 开心源码 本文共839个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共92人阅读

如何在 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执行时所需要的硬件资源不再存在争使用的情况,进而就避免了其执行时间的增长或者者不稳固。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Oracle DBA做SQL优化的最佳思路

发表回复