关键时刻HINT出彩 - PG优化器的参数优化、执行计划固化CASE

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

关键时刻HINT出彩 - PG优化器的参数优化、执行计划固化CASE

德哥 2016-07-23 12:07:27 浏览5292
展开阅读全文

背景

有过数据库使用经验的童鞋可曾遇到过SQL执行计划不准确,或者SQL执行计划抖动的问题。

PostgreSQL的执行计划与大多数的企业数据库是一样的,都是基于成本优化。

基于成本优化的优化器,在算法靠谱,统计信息准确的前提下,通常得到的执行计划是比较准确的。

那么什么时候执行计划可能不准确呢?

  • 成本估算的算法不好
    这个需要内核的不断改进,完善。

在没有合理的算法支撑的情况下,内核中往往会带有一些经验值,或者将这些经验值开放给用户设置。

  • 统计信息不准确
    PG的统计信息收集调度是几个参数共同决定的,也可以设置为表级别的调度。

如果发生了大批数据的变化,而且在调度来临之前没有及时的更新统计信息,就可能出现统计信息不准确的时间窗口。
还好PG的统计信息收集是动态调度的,一般不会出问题。

另外,如果SQL过于复杂,索引过多,可选

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属团队号: 阿里云数据库ApsaraDB