代码改变世界

随笔分类 -  A性能优化专题

同样的SQL,怎么突然就慢了?

2023-12-21 17:11 by AlfredZhao, 3548 阅读, 收藏, 编辑
摘要: 本篇文章素材来源于某银行系统的一次性能问题分析。 许久没写这种troubleshooting类型的技术文章了,因为曾在服务公司呆过多年,工作原因,这方面之前做的多,听的更多,导致已经达到在自己认知维度下的一个小瓶颈,纯技术型的问题,稍微常见的基本都遇到过,非常少见的也基本是bug类(软件缺陷只能通过 阅读全文

如何快速获取AWR中涉及到的表

2023-11-06 16:37 by AlfredZhao, 102 阅读, 收藏, 编辑
摘要: 最近遇到一个很少见的需求,是关于应用测试方面的。 具体来说,这个应用的测试需求要基于一个固定的时间点数据,而且只能测试一轮,再测试就需要还原到测试前状态。 因为我们使用的存储是分层的(热数据在Flash上,冷数据在传统机械盘),但因为每次测试都需要将数据库闪回还原到固定时间点,效果不佳,所以需要尽可 阅读全文

小知识:IN和EXISTS的用法及效率验证

2023-03-23 00:36 by AlfredZhao, 354 阅读, 收藏, 编辑
摘要: 环境: Oracle 19.16 多租户架构 经常会在网上看到有人写exists和in的效率区别,其实在新版本的数据库中,是不存在这个问题的,优化器会自己判断选择最优的执行计划。 为了直观的说明,我在PDB中构造如下测试用例: vi 1.sql select count(*) from v$acti 阅读全文

小知识:PDML的注意事项补充

2021-10-28 22:38 by AlfredZhao, 591 阅读, 收藏, 编辑
摘要: 关于PDML,之前在 并行,想说爱你不容易中的第一节就介绍过,今天在客户现场协助测试时又遇到几个有关PDML的问题,都蛮典型的,记录一下: 问题1:某存储过程报错ORA-12839。 查看该错误号说明: [oracle@db193 ~]$ oerr ora 12839 12839, 00000, " 阅读全文

并行,想说爱你不容易

2021-01-20 10:52 by AlfredZhao, 373 阅读, 收藏, 编辑
摘要: 在计算机的世界里,如果能用好并行这件利器,可以大幅提升性能;如果没用好,轻则达不到预期性能,重则会连带影响到整个系统的可用性,也正如本文标题所言:并行,想说爱你不容易。 阅读全文

Oracle之SQL优化专题03-如何看懂SQL的执行计划

2020-02-13 21:27 by AlfredZhao, 1315 阅读, 收藏, 编辑
摘要: 专题第一篇《 "Oracle之SQL优化专题01 查看SQL执行计划的方法" 》讲到了查看SQL执行计划的方法,并介绍了各种方法的应用场景,那么这一篇就主要介绍下如何看懂SQL的执行计划。毕竟如果SQL的执行计划都看不懂,那优化就无从谈起了。 关于如何看懂SQL的执行计划,我把它简单分为3个部分: 阅读全文

Oracle面对“数据倾斜列使用绑定变量”场景的解决方案

2019-08-27 00:32 by AlfredZhao, 1529 阅读, 收藏, 编辑
摘要: 1.背景知识介绍 2.构造测试用例 3.场景测试 4.总结 1.背景知识介绍 我们知道,Oracle在传统的OLTP(在线事务处理)类系统中,强烈推荐使用绑定变量,这样可以有效的减少硬解析从而增加系统的并发处理能力。甚至在有些老旧系统,由于在开始开发阶段缺乏认识没有使用到绑定变量,后期并发量增长且无 阅读全文

Oracle 10g收集数据库统计信息

2019-01-18 23:01 by AlfredZhao, 802 阅读, 收藏, 编辑
摘要: "1.需求概述" "2.实施步骤" "3.回退方案" 1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计划临时解决,但此方法不够灵活,后续维护工作量也会增加。 Oracle优化器(CBO)依赖 阅读全文

测试Oracle统计信息的导出导入

2018-12-18 19:28 by AlfredZhao, 1705 阅读, 收藏, 编辑
摘要: 背景: 有时我们会希望可以对Oracle的统计信息整体进行导出导入。比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集的结果反而引发性能问题,想先保存当前的统计信息,这样即使重新收集后效果不好还可以导入之前的统计信息。 Oracle提供给我们一些方法,比较常 阅读全文

Oracle 11g快速收集全库统计信息

2018-12-01 00:26 by AlfredZhao, 4027 阅读, 收藏, 编辑
摘要: 环境: Oracle 11.2.0.4 采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集: 注意degree的值并不是设置越高就越快,同时要根据实际CPU具体情况来设置。 本文来自同事的经验分享,这里主要用到dbms_stats包的set_global_p 阅读全文

Oracle之SQL优化专题02-稳固SQL执行计划的方法

2018-11-05 03:32 by AlfredZhao, 827 阅读, 收藏, 编辑
摘要: 首先构建一个简单的测试用例来实际演示: ``` create table emp as select * from scott.emp; create table dept as select * from scott.dept; create index idx_emp_empno on emp( 阅读全文

使用COE脚本绑定SQL Profile

2018-11-05 00:33 by AlfredZhao, 2173 阅读, 收藏, 编辑
摘要: 日常运维中,经常会遇到需要绑定好的执行计划的场景。 简单来说,就是将一个sql_id绑定好的plan_hash_value。如果没有使用到绑定变量,还需要把force_match设置为true。 用到的是MOS文档215187.1提供的系列脚本中的coe_xfr_sql_profile.sql。 下 阅读全文

那些年,我们用并行遇到的坑02

2018-08-29 00:51 by AlfredZhao, 779 阅读, 收藏, 编辑
摘要: 环境: Oracle 10.2.0.5 现象: RMAN分配多个通道,但实际无法使用到并行。 构建测试用例: "1.RMAN多通道但未用到并行" "2.备份语句改写使用到并行" "3.备份方式改变提高效率" 1.RMAN多通道但未用到并行 使用RMAN备份 使用下面SQL查询长操作: 实际是串行操作 阅读全文

Oracle SPA取报告阶段xml解析失败解决方案

2018-06-27 08:59 by AlfredZhao, 1973 阅读, 收藏, 编辑
摘要: SPA的整体测试过程可以参考: "记录一则完整的SPA(10g 11g)测试过程" 故障描述: 数据库字符集:US7ASCII,在SPA分析阶段正常,但在取报告阶段xml解析失败,具体现象如下: 这个invalid character 207,之前是别的无效字符,用一些方法删除掉重新SPA解包分析, 阅读全文

记录一则完整的SPA(10g->11g)测试过程

2018-06-22 12:10 by AlfredZhao, 1162 阅读, 收藏, 编辑
摘要: **生产端:**Windows 2008 + Oracle 10.2.0.5 **测试端:**RHEL 6.5 + Oracle 11.2.0.4 **需求:**因为Oracle跨越大版本,优化器、新特性变动较多,需要进行SPA测试比对前后期性能差异。 **说明:**本文是根据DBA Travel的 阅读全文

Oracle之SQL优化专题01-查看SQL执行计划的方法

2018-04-01 22:05 by AlfredZhao, 19687 阅读, 收藏, 编辑
摘要: 在我2014年总结的“ "SQL Tuning 基础概述" ”中,其实已经介绍了一些查看SQL执行计划的方法,但是不够系统和全面,所以本次SQL优化专题,就首先要系统的介绍一下查看SQL执行计划的方法。 本文示例SQL为: "1.explain plan for" "2.set autotrace" 阅读全文

关于Oracle开启自动收集统计信息的SPA测试

2018-01-07 21:00 by AlfredZhao, 2076 阅读, 收藏, 编辑
摘要: **主题:**关于Oracle开启自动收集统计信息的SPA测试 **环境:**Oracle RAC 11.2.0.4(Primary + Standby) **需求:**生产Primary库由于历史原因关闭了自动统计信息的收集,目前客户需求是想要重新开启统计信息的自动收集,虽然一般来说,有了更准确的 阅读全文

####### Scripts Summary #######

2017-11-09 10:54 by AlfredZhao, 680 阅读, 收藏, 编辑
摘要: Scripts Summary **Version: ** 1.0.1 **issueDate: ** 2017-11-11 **modifiedDate: ** 2020-12-9 0.configuration 1.operation 2.backup&recovery 3.Tuning 4.R 阅读全文

SQL Tuning 基础概述10 - 体会索引的常见执行计划

2017-03-22 17:33 by AlfredZhao, 583 阅读, 收藏, 编辑
摘要: 在《 "SQL Tuning 基础概述05 Oracle 索引类型及介绍" 》的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描,单块读,有序 INDEX RANGE SCAN:索引的范围扫描 INDEX FAST FULL SCAN:索引的快速全扫描,多 阅读全文

Oracle数据库该如何着手优化一个SQL

2016-01-12 14:53 by AlfredZhao, 4193 阅读, 收藏, 编辑
摘要: 这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异。 所以有时候我们应该先搞清楚需求到底是什么,SQL本身是否合理,这些思考很可能会使优化工作事半功倍。而本文是假设SQL本身 阅读全文