0
我有一大堆代碼,看起來像這樣準備好的語句: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;
這是我希望看到在生產服務器上。
爲什麼它試圖爲我的簡單選擇查詢創建一個準備好的語句?
一些背景資料:
- 歡樂3.4.1,連接到Postgres的9.5
- 我的測試案例是在同一個數據庫閱讀器頻道 「使用JavaScript」 勾掉。
- 但是,從日誌看來,每個查詢都會被解析/綁定/執行。即使是Mirth所做的內部疑問。
它可能是日誌級別設置的差異 – 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