Как получить информацию о плане запросов из Postgres в JDBC - PullRequest
5 голосов
/ 02 декабря 2011

Я хочу получить цифры стоимости из плана запроса, который вы получаете, когда вы «объясняете» запрос.Есть ли способ получить эти данные внутри Java ResultSet (или подобного объекта)?

Ответы [ 2 ]

8 голосов
/ 02 декабря 2011

Конечно, просто запустите его как обычный оператор:

Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("explain analyze select * from foo");
while (rs.next())
{
   System.out.println(rs.getString(1));
}
2 голосов
/ 03 декабря 2011

В дополнение к ответу, приведенному выше, я хотел бы предложить вам использовать возможность форматировать планы EXPLAIN в XML в PostgreSQL 9.0 и более поздних версиях.

EXPLAIN (анализировать, форматировать xml) SELECT ...

Это даст вам объяснение вывода, с которым вам будет проще работать в Java, манипулируя им как XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...