我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle中对于复杂的SQL语句怎么进行优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

oracle中对于复杂的SQL语句怎么进行优化

本篇内容主要讲解“oracle中对于复杂的SQL语句怎么进行优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle中对于复杂的SQL语句怎么进行优化”吧!

遵循下面的思路:

1. 先检查之前有没有好的执行计划,如果之前的执行计划是比较好的,那么可以使用 SQL Profile 来固定好的执行计划。

比如可以根据 note 1400903.1 的步骤,类似如下:

a). 我们有两个语句

select ename from scott.emp where ename='MILLER';

它的SQL_ID是 329d885bxvrcr ,plan hash value是 3045807146

select ename from scott.emp where ename='MILLER';

它的SQL_ID是 4f74t4ab7rd5y ,plan hash value是 2872589290

我们的目的就是把 4f74t4ab7rd5y 的plan转移给 329d885bxvrcr

b). 调用 coe_load_sql_profile.sql 来转移plan

比如:

SQL> @coe_load_sql_profile.sql

Parameter 1:

ORIGINAL_SQL_ID (required)

Enter value for 1: 329d885bxvrcr =======>此处填写原始的SQL的SQL_ID

Parameter 2:

MODIFIED_SQL_ID (required)

Enter value for 2: 4f74t4ab7rd5y =======>此处填写带hint的SQL的SQL_ID

Parameter 3:

PLAN_HASH_VALUE (required)

Enter value for 3: 2872589290 =======>此处填写带hint的SQL的plan hash value (期望的plan)

此时SQL Profile就产生了

c). 您可以再次验证原来的SQL的plan是否就已经按照我们的期望改变了

2. 如果之前也没有好的执行计划,那么接下来需要收集统计信息;因为优化器是根据统计信息来生成执行计划,所以最新的统计信息经常可以修正不好的执行计划。

3. 如果收集统计信息也没有能够让 SQL 性能变好,那么接下来需要使用 SQL Tuning Advisory 来帮我们优化,看是否可以找到一些建议。

我注意到您实际上已经尝试过这种方式了。

4. 如果上面的方法都不能解决问题,那么接下来就需要从 SQL 语句本身入手。

通过联系应用团队修改 SQL 逻辑来进一步优化了。

到此,相信大家对“oracle中对于复杂的SQL语句怎么进行优化”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle中对于复杂的SQL语句怎么进行优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MyBatis中怎么对SQL语句进行性能分析和调优

MyBatis中可以通过配置日志打印器来对SQL语句进行性能分析和调优。可以使用Log4j、Log4j2、Logback等日志框架来输出MyBatis执行的SQL语句及执行时间等信息。在MyBatis的配置文件中,可以配置日志打印器的类型
MyBatis中怎么对SQL语句进行性能分析和调优
2024-05-08

如何使用SQL语句在MySQL中进行复杂的数据计算和处理?

MySQL是一款流行的关系型数据库管理系统,它不仅提供了基本数据操作功能,还支持复杂的数据计算和处理。本文将介绍如何使用SQL语句在MySQL中进行复杂的数据计算和处理,并提供具体的代码示例。使用聚合函数进行数据计算MySQL提供了一组聚合
如何使用SQL语句在MySQL中进行复杂的数据计算和处理?
2023-12-18

怎么进行Python运行效率优于C语言的对比

今天就跟大家聊聊有关怎么进行Python运行效率优于C语言的对比,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python是个非常流行的解释型脚本语言。C是一个非常流行的编译语言。由
2023-06-17

CentOS7中怎么对系统进行基本的性能监控和优化

在CentOS7中,可以使用以下工具来进行基本的系统性能监控和优化:使用top命令监控系统性能:top命令可以实时查看系统的CPU、内存、磁盘等资源使用情况,以便及时发现性能瓶颈。使用vmstat命令监控系统性能:vmstat命令可以提供系
CentOS7中怎么对系统进行基本的性能监控和优化
2024-03-04

编程热搜

目录