数据库管理-第166期 来自于全球最强数据库性能优化团队的四大处方(20240329)

来源:这里教程网 时间:2026-03-03 19:46:31 作者:

数据库管理-第166期 来自于全球最强数据库性能优化团队的四大处方(20240329)

作者:胖头鱼的鱼缸(尹海文) Oracle ACE Associate: Database(Oracle与MySQL) 国内某科技公司 DBA总监 10年数据库行业经验,现主要从事数据库服务工作 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师 圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著 名社恐(社交恐怖分子) 公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。 除授权转载并标明出处外,均为“非法”抄袭。

本周,有幸受邀报名参加了在Oracle成都办公室举行的RWP培训,这算是疫情后第一次参加Oracle原厂组织的培训,疫情前和疫情中也参加过,但是那时候由于还比较菜,听得云里雾里的。这次就不一样了,在有了一定基础之后,受益匪浅。

1 RWP

RWP,Real-World Performance Team简称,是Oracle中一个专注于性能优化团队(可以说是达到变态级别追求极 致性能的一波人),目前该团队在中国有4人,隶属于售前部门(曾经隶属于开发部门,国外还是属于研发部门)。本次来给我们培训的是Cary总和Calvin老师: 020f9d9167c91ea4cff5e5c99d900b5.jpg

(从左开始:我,Cary总,Calvin老师)

RWP培训带来的各种优化相关的内容并不一定只能用于Oracle数据库,很多东西都是在数据库中通用的,本期就来讲一讲本次培训带来的数据库优化的四大处方。

2 四大处方

Constraints

Constraints,约束。虽然约束在很多情况下会影响相关表的DML性能,但是良好的约束条件可以帮助优化器生成更好的执行计划。

  • 在JOIN KEY上使用NOT NULL约束
  • 在维度表的JOIN KEY上使用主键(PRIMARY KEY)约束
  • 在现实表的JOIN KEY上使用外键(FOREIGN KEY)约束

    Data Types

    Data Types,数据类型。

  • 主键和外键列上的数据类型必须一致
  • 主键和外键列上的数据类型精度必须一直
  • 避免运行时的数据类型转换

    Statistics

    Statistics,统计信息。统计信息是优化器生产统计信息非常重要的一句,详情可以查看《数据库管理-第九十八期 统计信息是多么重要(20230812)》。

  • 考虑数据倾斜
  • 考虑表、列之间的相关性
  • 不要单独依赖动态统计信息收集
  • 考虑如何、何时收集统计信息

    Partitioning

    Partitioning,分区。分区可以有效的减少IO需求与关联数据。

  • 通常为RANGE和INTERVEL
  • 减少从事实表中提取的行数
  • 提高可管理性

    3 最终实现

    通过上面四大处方,最终通过下面的方法实现性能的优化:

  • 更好的基数估计
  • 更好的执行计划
  • 提供更多访问路径
  • 优化器能够执行许多转换和优化(JOIN消除、物化视图重写、In-Memory聚合转换等)
  • 分区修剪

    image.png

    总结

    本期只是简单罗列了一下四大处方的基本概念,后面有机会详细的分析一下。 老规矩,知道写了些啥。

  • 相关推荐