如何使用 PostgreSQL 中具有绑定参数的准备好的查询执行“Explain”语句?

2024-02-18

我希望能够对具有绑定参数的查询执行解释语句。例如:

EXPLAIN SELECT * FROM metasyntax WHERE id = $1;

当我尝试执行此操作时,出现以下错误:

ERROR: bind message supplies 0 parameters, but prepared statement "" requires 1

我知道它告诉我它希望我为查询提供一个值。然而,我可能不一定知道答案。在其他 SQL 方言(例如 Oracle)中,它将生成解释计划,而不需要我提供参数值。

是否有可能获得一个不与实际值绑定的解释计划?谢谢!


假设参数是整数:

PREPARE x(integer) AS SELECT * FROM metasyntax WHERE id = $1;

然后运行以下六次,其中“42”是代表值:

EXPLAIN (ANALYZE, BUFFERS) EXECUTE x(42);

通常 PostgreSQL 会在第六次运行时切换到通用计划,您将看到一个包含占位符的计划$1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PostgreSQL 中具有绑定参数的准备好的查询执行“Explain”语句? 的相关文章

随机推荐