SQL优化技巧:基于特征的SQL改写策略
137 浏览量
更新于2024-09-08
收藏 1.04MB PDF 举报
"中亦科技黄远邦分享的SQL优化技术,主要讲解了一种基于SQL特征的改写方法,以解决客户DBA遇到的性能问题。案例涉及Oracle 11.2.0.3 RAC数据库环境,通过分析SQL文本、执行计划和统计信息,找出特征并进行优化。"
在SQL优化的过程中,黄远邦强调了理解和分析SQL特征的重要性。首先,他介绍了摆问题、列信息的步骤,包括查看SQL文本、执行计划和执行统计信息,同时了解系统的数据库版本。在这个案例中,系统是AIX6.1上的Oracle 11.2.0.3两节点RAC数据库。
接着,黄远邦聚焦于找到SQL的特征,以便针对性地进行优化。在SQL文本中,他注意到一个exists子句和一个update set部分,这两部分代码基本相同,而且exists子句的子查询结果用于更新set列,业务逻辑保证返回记录最多为1,这是一个关键的优化点。
在执行计划的特征分析中,黄远邦指出所有过程都使用了filter操作,结合SQL文本和predicate information,他发现对目标表TARGET_BIG_TA的操作可能有改进空间。通常,过多的filter操作可能导致不必要的扫描和计算,影响性能。
针对这些特征,黄远邦可能采取的优化策略包括但不限于:
1. **重写SQL**:根据exists子句的特性,如果子查询能确保最多返回一条记录,可能可以转换为更高效的in或join操作。
2. **减少过滤操作**:如果filter操作导致全表扫描,可以考虑添加索引或者优化查询条件,减少扫描的行数。
3. **利用并行处理**:在RAC环境下,可以考虑使用并行查询来分担负载,提高执行效率。
4. **考虑物化视图**:对于重复的查询部分,可以创建物化视图来预计算结果,减少运行时的计算量。
优化不仅仅是单纯的技术调整,还需要结合业务逻辑和系统整体性能进行考量。黄远邦提出,SQL优化需要不断学习新方法,同时发挥创新思维,像围棋高手那样,面对问题时既能凭借经验,又能突发灵感,找到最佳解决方案。
这个案例不仅展示了SQL优化的具体实践,也提醒读者在处理SQL性能问题时,应全面分析问题,理解SQL的业务含义,充分利用数据库提供的各种工具和特性,以实现最佳的优化效果。
584 浏览量
282 浏览量
247 浏览量
112 浏览量
2025-01-08 上传
2025-01-08 上传
DBAXIAOy
- 粉丝: 57
- 资源: 9
最新资源
- jquery开关按钮基于Bootstrap开关按钮特效
- merkle-react-client:客户
- 财务管理系统javaweb项目
- DOM-Parsing:DOM解析和序列化
- FastReport v6.7.11 Enterprise installer .zip
- pid控制器代码matlab-AutomatedBalancingRobot:自动平衡机器人是一个项目,其中建造了一个两轮机器人,并将其编程为
- 基于MATLAB模型设计的FPGA开发与实现.zip_UBK_matlab与fpga_simulink模型_struck9hw_
- ubiq:基于HugSQL和GraphQL的Web应用程序,移动部分最少
- 行业文档-设计装置-一种折叠式防滑书立.zip
- 意法半导体参考文献及软件资料.7z
- LoRa-High-Altitude-Balloon:这是蒙大拿州立大学LoRa小组顶峰项目的存储库,该项目是蒙大纳州太空资助财团BOREALIS实验室的项目。 以下代码在定制板上运行,该定制板上旨在收集高空气球有效载荷上的大气数据
- BW_Anal-开源
- nuaa_check_action:inuaa打卡,基于GitHub Action的南航校内,校外打卡
- alex_presso
- perf:PERF是详尽的重复查找器
- 行业文档-设计装置-一种折叠式包装纸箱.zip