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

数据库管理-第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
::: hljs-center

(从左开始:我,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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值