oracle向pg迁移中的sql优化问题?

1、两表字段匹配时由于字段类型不同,导致性能下降。2、两表字段匹配,同时大表字段有条件筛选,由于sql代码问题,先匹配再筛选,导致性能下降。3、筛选字段上应用了时间或字符函数,导致未用索引。其他可能还有,待各位老师和同行补充。个人觉得,oracle对于情况1和2,可能有些自带的优化...显示全部

1、两表字段匹配时由于字段类型不同,导致性能下降。
2、两表字段匹配,同时大表字段有条件筛选,由于sql代码问题,先匹配再筛选,导致性能下降。
3、筛选字段上应用了时间或字符函数,导致未用索引。
其他可能还有,待各位老师和同行补充。
个人觉得,oracle对于情况1和2,可能有些自带的优化处理,导致不发生性能问题,而同样的语句拿到pg,就不行了。
在数据库迁移中会遇到大量的问题sql,能不能有通用的处理方法,能自动发现到上述会引起性能问题sql?

收起
参与12

查看其它 1 个回答austindatabase的回答

austindatabaseaustindatabase数据库架构师互联网金融

1 首先应该了解,字段类型在两种数据库之间的不同表达的方式,在更替PostgreSQL 数据库中替换效率更高的字段类型,如 VARCHAR  不选择 Char 类型等

2  了解POSTGRESQL 与 ORACLE 在索引上的异同点,比如函数索引在POSTGRESQL 是可以被使用的

3  针对JOIN 中非等值计算中无法和ORACLE 使用 Merge Join 的问题,需要对语句进行拆分,甚至采用新的语句的写法来进行替换

关于发现迁移性能中的问题是否能自动化发现,这需要

1   有相关的迁移后的业务POC 压测
2  开启PostgreSQL 相关的插件 pg_stat_statement  在压测期间,发现SQL 性能的问题
3  通过数据库本身的手段 和 程序的手段 共同解决问题,而不是单纯依靠数据库的手段来单独解决。

互联网服务 · 2023-09-01
浏览543

回答者

austindatabase
数据库架构师互联网金融

austindatabase 最近回答过的问题

回答状态

  • 发布时间:2023-09-01
  • 关注会员:3 人
  • 回答浏览:543
  • X社区推广