禁用 PostgreSQL 查询优化?

Posted

技术标签:

【中文标题】禁用 PostgreSQL 查询优化?【英文标题】:Disable PostgreSQL query optimization? 【发布时间】:2020-03-25 19:28:43 【问题描述】:

我遇到了完全禁用 PostgreSQL 查询优化的需要,以便我可以衡量应用 QO 的有效性(我想看看之前和之后的情况)。我从 2014 年开始遇到这个话题How to disable all optimizations of PostgreSQL,基本上说这是不可能的。我想知道从那以后有什么改变吗?我真的很想看到一个坏计划与好计划之间的巨大差异。

【问题讨论】:

【参考方案1】:

没有计划就无法执行查询,而优化器就是计划提出的。在没有优化器的情况下不存在“默认”计划。

您将所有enable_* 参数关闭,enable_seqscanenable_nestloop 除外。

或者您可以将join_collapse_limitfrom_collapse_limit 都设置为1,这将严重限制优化器的功能。

【讨论】:

以上是关于禁用 PostgreSQL 查询优化?的主要内容,如果未能解决你的问题,请参考以下文章

优化 PostgreSQL 中的 SQL 查询

PostgreSQL 计数查询优化

PostgreSQL 查询性能和可能的优化

PostgreSQL代码分析,查询优化部分,process_duplicate_ors

理解/优化 Postgresql 中的 SQL 查询

如何优化在 postgresql 中查询这些数据?