如何在 PostgreSQL中强制Join连接顺序?

在oracle多表关连中有SQL hint可以干预CBO产生的不合理的表join顺序,如ordered, leading等,但PostgreSQL和部分基于PG国产数据库如Highgo V9.5, 目前也还不支持SQL hint。当遇到SQL性能问题,明确某个join 顺序更好时,如何影响PG数据库优化器执行指定的执行计划呢?如果您真的需要SQL hint,在pg中可以安装 pg_hint_plan 扩展,但目前应该是因为highgo的oracle和pg的双兼容模式,如果实现pg_hint_plan在解析器上隔离上要复杂了些,所以暂未实现,又或者不想安装第三方扩展,在这种情况下,记录几个可以强制执行join ordered的替代方法。

, ,