博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle数据库SQL优化的最佳思路
阅读量:7116 次
发布时间:2019-06-28

本文共 898 字,大约阅读时间需要 2 分钟。

hot3.png

如何在 Oracle数据库里写出高质量的SQL语句,如何在Oracle数据库里对有性能问题的SQL做诊断和调整,这是DBA们在ORACLE数据库实践中不可避免的难题。下面就让我们来分析一下拿到一条问题sql后DBA可以如何去开始优化思路。
对于有问题的SQL做SQL优化的具体步骤一般为:
1、查看该SQL语句的执行计划,并结合其资源消耗情况和相关统计信息、Trace文件来分析其执行计划是否合理;
2、通过修正措施(如调整该SQL的执行计划等)来对该SQL做调整以缩短其执行时间,Oracle数据库里SQL优化的终极目标就是要缩短目标SQL语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择:
1、降低目标SQL语句的资源消耗;
2、并行执行目标SQL语句;
3、平衡系统的资源消耗。
方法1:降低目标SQL语句的资源消耗”以缩短执行时间,这是DBA们最常用的SQL优化方法。这种方法的核心是要么通过在不更改业务逻辑的情况下改写SQL来降低目标SQL语句的资源消耗,要么不改SQL但通过调整执行计划或相关表的数据来降低目标SQL语句的资源消耗。
方法2:并行执行目标SQL语句”,这实际上是以额外的资源消耗来换取执行时间的缩短,很多情况下使用并行是针对某些SQL的唯一优化手段。
方法3:平衡系统的资源消耗” 可以避免不必要的资源争用所导致的目标SQL语句执行时间的增长。对某些SQL而言,其执行时间的增长或者不稳定(时快时慢)不是由于其执行计划的问题,而是由于在目标SQL执行时系统处于高负荷状态,执行目标SQL所需要的硬件资源(CPU、内存、IO等)得不到保障,存在争用的情况。在这样的情况下,如果DBA能平衡系统的资源消耗,把一些跟目标SQL同时执行的不重要但很消耗系统资源的操作(如报表、批处理等)挪到系统不忙的时候执行,比如把它们挪到晚上执行,那么就可以释放部分系统硬件资源以确保目标SQL执行时所需要的硬件资源不再存在争用的情况,进而就避免了其执行时间的增长或者不稳定。

转载于:https://my.oschina.net/u/1411872/blog/181341

你可能感兴趣的文章
Django4.2_templates之各种标签的用法讲解
查看>>
destoon 6.0 URL Rewrite(伪静态)大全
查看>>
linux进程管理
查看>>
Linux基础
查看>>
实现第一个Struts2应用
查看>>
Linux系统搭建zabbix监控系统实例讲解
查看>>
JavaScript强化教程 —— Cocos2d-JS的屏幕适配方案
查看>>
CentOS系统上配置https服务
查看>>
小米二次校验系统
查看>>
11.16
查看>>
vmstat参数状况分析
查看>>
华为OSPF路由配置详解教程
查看>>
【实验】通过DHCP服务器来实现不同VLAN间PC的IP自动获取
查看>>
检查Linux服务器性能
查看>>
负载均衡集群介绍
查看>>
apache-2.4.33的安装
查看>>
nginx反向代理相关配置(一)
查看>>
Confluence 6 MySQL 输入你的数据库细节
查看>>
Confluence 6 配置 Web 代理支持
查看>>
LInux入门常出现的单词语句解析
查看>>