代码改变世界

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

TPC-H 研究和优化尝试

2025-03-13 00:06 by AlfredZhao, 684 阅读, 收藏,
摘要: TPC-H测试提供了8张表,最近做这个测试,记录下过程中的关键点备忘。 1.整体理解TPC-H 8张表 2.建立主外键约束后测试22条SQL 3.分区表改造,确认分区字段 4.重新测试22条SQL 5.In-Memory效果测试 6.大表并行度设置 1.整体理解TPC-H 8张表 TPC-H 属于 阅读全文

Oracle 23ai TPC-H 修订问题SQL

2025-03-09 08:45 by AlfredZhao, 341 阅读, 收藏,
摘要: TPC-H是一个广泛使用的基准测试,用于评估数据库系统在决策支持系统(DSS)场景下的性能。 在之前的文章中,我们完成了《Oracle 23ai TPC-H 测试环境部署》,本文修订下有问题的SQL,确保22条SQL可以正常运行。 1.修订执行有问题的SQL 2.完整运行22个SQL 1. 修订执行 阅读全文

Oracle 23ai TPC-H 测试环境部署

2025-03-08 00:40 by AlfredZhao, 439 阅读, 收藏,
摘要: 最近,我在 Oracle Database 23ai 上进行了 TPC-H 100GB 测试,并整理了完整的实施步骤和优化经验。如果你也想评估 Oracle 数据库在决策支持场景下的性能,可以参考我的步骤快速上手。 1. 环境准备 在开始测试之前,先介绍下本次测试环境基本情况: 数据库版本:Orac 阅读全文

Oracle优化神技之临时表

2024-06-03 20:55 by AlfredZhao, 1637 阅读, 收藏,
摘要: Oracle临时表在处理临时数据、会话数据隔离和复杂查询优化方面非常有用。 其底层逻辑是通过Oracle特殊的临时表来减少I/O操作和日志开销,提高了数据库性能和查询效率。开发者可以根据具体需求和场景,合理使用临时表来简化数据处理逻辑和提高系统性能。 早期开发人员在使用Oracle数据库时,经常因为 阅读全文

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

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

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

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

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

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

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

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

并行,想说爱你不容易

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

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

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

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

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

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

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

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

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

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

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

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

2018-11-05 03:32 by AlfredZhao, 972 阅读, 收藏,
摘要: 首先构建一个简单的测试用例来实际演示: ``` 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, 2434 阅读, 收藏,
摘要: 日常运维中,经常会遇到需要绑定好的执行计划的场景。 简单来说,就是将一个sql_id绑定好的plan_hash_value。如果没有使用到绑定变量,还需要把force_match设置为true。 用到的是MOS文档215187.1提供的系列脚本中的coe_xfr_sql_profile.sql。 下 阅读全文

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

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

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

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

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

2018-06-22 12:10 by AlfredZhao, 1307 阅读, 收藏,
摘要: **生产端:**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, 19990 阅读, 收藏,
摘要: 在我2014年总结的“ "SQL Tuning 基础概述" ”中,其实已经介绍了一些查看SQL执行计划的方法,但是不够系统和全面,所以本次SQL优化专题,就首先要系统的介绍一下查看SQL执行计划的方法。 本文示例SQL为: "1.explain plan for" "2.set autotrace" 阅读全文