如何解释 PostgreSQL 8.3 中具有绑定变量的查询

如何解释 PostgreSQL 8.3 中具有绑定变量的查询

我需要解释 PostgreSQL 8.3 中应用程序生成的 SQL 语句。我在日志中捕获了该 SQL 语句,但它有很多绑定变量。有什么方法可以解释此 SQL 语句吗?

当我尝试使用绑定变量时,解析器不喜欢它。如果我将绑定变量更改为语句中使用的实际值,这是否会改变数据的访问路径?

答案1

该计划实际上可能会根据您提供的值而有所不同,因此无法实现您想要的效果。只需为您的查询优化/调整提供一些实际的样本值即可。

更多细节:

使用绑定变量可以消除第一个绑定查询之后的每个绑定查询的解析步骤。此步骤未在解释计划中表示。但是,计划和查询执行发生在绑定步骤之后,这就是您的解释计划不起作用的原因。

以下是在 PostgreSQL 中构建查询的基本流程(至少我上次使用它已经有几年了):

接收 -> 解析 -> 绑定 -> 规划 -> 执行 -> 返回

相关内容