摘要:
Oracle临时表在处理临时数据、会话数据隔离和复杂查询优化方面非常有用。 其底层逻辑是通过Oracle特殊的临时表来减少I/O操作和日志开销,提高了数据库性能和查询效率。开发者可以根据具体需求和场景,合理使用临时表来简化数据处理逻辑和提高系统性能。 早期开发人员在使用Oracle数据库时,经常因为 阅读全文
随笔分类 - A性能优化专题
同样的SQL,怎么突然就慢了?
2023-12-21 17:11 by AlfredZhao, 3852 阅读, 收藏, 编辑
摘要:
本篇文章素材来源于某银行系统的一次性能问题分析。 许久没写这种troubleshooting类型的技术文章了,因为曾在服务公司呆过多年,工作原因,这方面之前做的多,听的更多,导致已经达到在自己认知维度下的一个小瓶颈,纯技术型的问题,稍微常见的基本都遇到过,非常少见的也基本是bug类(软件缺陷只能通过 阅读全文
如何快速获取AWR中涉及到的表
2023-11-06 16:37 by AlfredZhao, 127 阅读, 收藏, 编辑
摘要:
最近遇到一个很少见的需求,是关于应用测试方面的。 具体来说,这个应用的测试需求要基于一个固定的时间点数据,而且只能测试一轮,再测试就需要还原到测试前状态。 因为我们使用的存储是分层的(热数据在Flash上,冷数据在传统机械盘),但因为每次测试都需要将数据库闪回还原到固定时间点,效果不佳,所以需要尽可 阅读全文
小知识:IN和EXISTS的用法及效率验证
2023-03-23 00:36 by AlfredZhao, 399 阅读, 收藏, 编辑
摘要:
环境: Oracle 19.16 多租户架构 经常会在网上看到有人写exists和in的效率区别,其实在新版本的数据库中,是不存在这个问题的,优化器会自己判断选择最优的执行计划。 为了直观的说明,我在PDB中构造如下测试用例: vi 1.sql select count(*) from v$acti 阅读全文
小知识:PDML的注意事项补充
2021-10-28 22:38 by AlfredZhao, 700 阅读, 收藏, 编辑
摘要:
关于PDML,之前在 并行,想说爱你不容易中的第一节就介绍过,今天在客户现场协助测试时又遇到几个有关PDML的问题,都蛮典型的,记录一下: 问题1:某存储过程报错ORA-12839。 查看该错误号说明: [oracle@db193 ~]$ oerr ora 12839 12839, 00000, " 阅读全文
并行,想说爱你不容易
2021-01-20 10:52 by AlfredZhao, 399 阅读, 收藏, 编辑
摘要:
在计算机的世界里,如果能用好并行这件利器,可以大幅提升性能;如果没用好,轻则达不到预期性能,重则会连带影响到整个系统的可用性,也正如本文标题所言:并行,想说爱你不容易。 阅读全文
Oracle之SQL优化专题03-如何看懂SQL的执行计划
2020-02-13 21:27 by AlfredZhao, 1375 阅读, 收藏, 编辑
摘要:
专题第一篇《 "Oracle之SQL优化专题01 查看SQL执行计划的方法" 》讲到了查看SQL执行计划的方法,并介绍了各种方法的应用场景,那么这一篇就主要介绍下如何看懂SQL的执行计划。毕竟如果SQL的执行计划都看不懂,那优化就无从谈起了。 关于如何看懂SQL的执行计划,我把它简单分为3个部分: 阅读全文
Oracle面对“数据倾斜列使用绑定变量”场景的解决方案
2019-08-27 00:32 by AlfredZhao, 1593 阅读, 收藏, 编辑
摘要:
1.背景知识介绍 2.构造测试用例 3.场景测试 4.总结 1.背景知识介绍 我们知道,Oracle在传统的OLTP(在线事务处理)类系统中,强烈推荐使用绑定变量,这样可以有效的减少硬解析从而增加系统的并发处理能力。甚至在有些老旧系统,由于在开始开发阶段缺乏认识没有使用到绑定变量,后期并发量增长且无 阅读全文
Oracle 10g收集数据库统计信息
2019-01-18 23:01 by AlfredZhao, 835 阅读, 收藏, 编辑
摘要:
"1.需求概述" "2.实施步骤" "3.回退方案" 1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计划临时解决,但此方法不够灵活,后续维护工作量也会增加。 Oracle优化器(CBO)依赖 阅读全文
测试Oracle统计信息的导出导入
2018-12-18 19:28 by AlfredZhao, 1776 阅读, 收藏, 编辑
摘要:
背景: 有时我们会希望可以对Oracle的统计信息整体进行导出导入。比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集的结果反而引发性能问题,想先保存当前的统计信息,这样即使重新收集后效果不好还可以导入之前的统计信息。 Oracle提供给我们一些方法,比较常 阅读全文
Oracle 11g快速收集全库统计信息
2018-12-01 00:26 by AlfredZhao, 4190 阅读, 收藏, 编辑
摘要:
环境: Oracle 11.2.0.4 采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集: 注意degree的值并不是设置越高就越快,同时要根据实际CPU具体情况来设置。 本文来自同事的经验分享,这里主要用到dbms_stats包的set_global_p 阅读全文
Oracle之SQL优化专题02-稳固SQL执行计划的方法
2018-11-05 03:32 by AlfredZhao, 886 阅读, 收藏, 编辑
摘要:
首先构建一个简单的测试用例来实际演示: ``` 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, 2327 阅读, 收藏, 编辑
摘要:
日常运维中,经常会遇到需要绑定好的执行计划的场景。 简单来说,就是将一个sql_id绑定好的plan_hash_value。如果没有使用到绑定变量,还需要把force_match设置为true。 用到的是MOS文档215187.1提供的系列脚本中的coe_xfr_sql_profile.sql。 下 阅读全文
那些年,我们用并行遇到的坑02
2018-08-29 00:51 by AlfredZhao, 803 阅读, 收藏, 编辑
摘要:
环境: Oracle 10.2.0.5 现象: RMAN分配多个通道,但实际无法使用到并行。 构建测试用例: "1.RMAN多通道但未用到并行" "2.备份语句改写使用到并行" "3.备份方式改变提高效率" 1.RMAN多通道但未用到并行 使用RMAN备份 使用下面SQL查询长操作: 实际是串行操作 阅读全文
Oracle SPA取报告阶段xml解析失败解决方案
2018-06-27 08:59 by AlfredZhao, 2043 阅读, 收藏, 编辑
摘要:
SPA的整体测试过程可以参考: "记录一则完整的SPA(10g 11g)测试过程" 故障描述: 数据库字符集:US7ASCII,在SPA分析阶段正常,但在取报告阶段xml解析失败,具体现象如下: 这个invalid character 207,之前是别的无效字符,用一些方法删除掉重新SPA解包分析, 阅读全文
记录一则完整的SPA(10g->11g)测试过程
2018-06-22 12:10 by AlfredZhao, 1186 阅读, 收藏, 编辑
摘要:
**生产端:**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, 19861 阅读, 收藏, 编辑
摘要:
在我2014年总结的“ "SQL Tuning 基础概述" ”中,其实已经介绍了一些查看SQL执行计划的方法,但是不够系统和全面,所以本次SQL优化专题,就首先要系统的介绍一下查看SQL执行计划的方法。 本文示例SQL为: "1.explain plan for" "2.set autotrace" 阅读全文
关于Oracle开启自动收集统计信息的SPA测试
2018-01-07 21:00 by AlfredZhao, 2124 阅读, 收藏, 编辑
摘要:
**主题:**关于Oracle开启自动收集统计信息的SPA测试 **环境:**Oracle RAC 11.2.0.4(Primary + Standby) **需求:**生产Primary库由于历史原因关闭了自动统计信息的收集,目前客户需求是想要重新开启统计信息的自动收集,虽然一般来说,有了更准确的 阅读全文
####### Scripts Summary #######
2017-11-09 10:54 by AlfredZhao, 693 阅读, 收藏, 编辑
摘要:
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, 590 阅读, 收藏, 编辑
摘要:
在《 "SQL Tuning 基础概述05 Oracle 索引类型及介绍" 》的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描,单块读,有序 INDEX RANGE SCAN:索引的范围扫描 INDEX FAST FULL SCAN:索引的快速全扫描,多 阅读全文