如何从Postgres获取查询计划信息到JDBC

我想从您解释查询时获得的查询计划中捕获成本数字。 有没有办法在Java ResultSet(或类似对象)中获取此数据?

当然,只需将其作为常规声明运行:

Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("explain analyze select * from foo"); while (rs.next()) { System.out.println(rs.getString(1)); } 

除了上面提供的答案,我建议您使用在PostgreSQL 9.0及更高版本中将EXPLAIN计划格式化为XML的能力。

EXPLAIN(分析,格式化xml)SELECT …

这将为您提供解释输出,您可以通过将其作为XML进行操作来更轻松地使用Java。