From a66edf80773e882f0830cb2fbf0aa6cfffdfe3c5 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Wed, 19 Dec 2018 16:55:24 +1300 Subject: [PATCH] #1477 Query plan capture - use explain analyze for Postgres ... so that we also get DB side timing --- src/main/java/io/ebean/meta/MetaInfoManager.java | 1 - .../ebeaninternal/server/query/QueryPlanLoggerPostgres.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/ebean/meta/MetaInfoManager.java b/src/main/java/io/ebean/meta/MetaInfoManager.java index 74d0e7882..8880014b7 100644 --- a/src/main/java/io/ebean/meta/MetaInfoManager.java +++ b/src/main/java/io/ebean/meta/MetaInfoManager.java @@ -1,7 +1,6 @@ package io.ebean.meta; import java.util.List; -import java.util.function.Consumer; /** * Provides access to the meta data in EbeanServer such as query execution statistics. diff --git a/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java b/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java index bd04e0eb2..06cab4682 100644 --- a/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java +++ b/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java @@ -8,14 +8,14 @@ import java.sql.ResultSet; import java.sql.SQLException; /** - * A QueryPlanlogger that prefixes "EXPLAIN " to the query. This works for Postgres, H2 and MySql. + * A QueryPlanlogger for Postgres that prefixes "EXPLAIN ANALYZE" to the query. */ public class QueryPlanLoggerPostgres extends QueryPlanLogger { @Override public DQueryPlanOutput logQueryPlan(Connection conn, CQueryPlan plan, BindCapture bind) { - String explain = "EXPLAIN " + plan.getSql(); + String explain = "explain analyze " + plan.getSql(); try (PreparedStatement explainStmt = conn.prepareStatement(explain)) { bind.prepare(explainStmt, conn); try (ResultSet rset = explainStmt.executeQuery()) {