PostgreSQL JDBC FLOAT8作为String传输

时间:2015-05-26 19:47:48

标签: java postgresql jdbc

在使用最新的JDBC驱动程序(9.4-1201-jdbc41)分析从Postgres 9.3.5加载大型数据集时,我注意到在AbstractJdbc2ResultSet.getDouble()方法中花费了大量时间,其中驱动程序正在转换String值使用Double.toDouble()加倍。

查看源代码,似乎有一种方法以二进制格式传输double值,但我找不到任何方法强制服务器发送回二进制编码的double值(尝试在连接字符串中将binaryTransfer设置为true)正如https://wiki.postgresql.org/wiki/JDBC-BinaryTransfer中所建议的,没有改变任何东西。)

在从Postgres加载数据时是否有人遇到过类似的行为,或者对于为何以这种方式实现这一点有任何见解?我在这里http://www.postgresql.org/message-id/flat/36333.1430411802@sss.pgh.pa.us#36333.1430411802@sss.pgh.pa.us)发现了最近对类似问题的讨论,但没有提供确凿的答案。

1 个答案:

答案 0 :(得分:0)

您需要至少执行5-6(或更多)语句才能获得binaryTransfer模式。更多信息:https://github.com/pgjdbc/pgjdbc/issues/642