у меня есть тонны кода, который выглядит следующим образом:java.Statement.executeQuery() создает подготовленное заявление, когда он не должен
conn.createStatement().executeQuery("SELECT a, b, c FROM foo;");
В моем Postgres журналах я вижу тонны этих линий:
parse <unnamed>: SELECT a, b, c FROM foo;
bind <unnamed>: SELECT a, b, c FROM foo;
execute <unnamed>: SELECT a, b, c FROM foo;
Это на производственном сервере.
На моем тестовом сервере, я вижу:
execute <unnamed>: SELECT a, b, c FROM foo;
Что я ожидал увидеть на сервере.
Почему он пытается создать подготовленный оператор для моего простого запроса выбора?
Некоторые фона:
- Mirth 3.4.1, подключение к Postgres 9.5
- Мой тестовый случай в считывающем канале базы данных с "Использовать Javascript" галочка.
- Но, из журналов, кажется, что каждый запрос выполняет синтаксический анализ/связывание/выполнение. Даже внутренние запросы, которые делает Мирт.
Это может быть разница в настройках уровня журнала – asit
Вы предлагаете, чтобы на самом деле не создавались подготовленные операторы, но простые настройки уровня журнала дают более подробный вывод? Если бы это было так, я бы не запускал «SELECT a, b, c FROM foo;» из командной строки postgres выдает тот же результат в журнале? Это не. – Jason
Эй, это может быть ответ (я должен буду это проверить завтра): http://stackoverflow.com/questions/6741530/any-way-to-not-use-server-side-prepared-statements- в-PostgreSQL – Jason