我希望能够对绑定参数的查询执行explain语句。例如:如何在PostgrSQL中使用已准备的查询执行“解释”语句,该查询具有绑定参数?
EXPLAIN SELECT * FROM metasyntax WHERE id = $1;
当我尝试执行此,我得到以下错误:
ERROR: bind message supplies 0 parameters, but prepared statement "" requires 1
我的理解是在告诉我,它要我为查询提供一个值。但是,我可能不一定知道这个答案。在其他SQL方言(如Oracle)中,它将生成解释计划,而无需为参数提供值。
是否有可能得到一个解释计划,而不绑定到实际值?谢谢!
执行计划可能取决于参数的值:[示例](http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle=cd52792a97ce9c34bc3e9dfbce041292) – Abelisto
编号允许优化器根据参数更改查询计划。 – Bohemian