【发布时间】:2012-09-28 11:26:30
【问题描述】:
我正在使用 jdbc 批量更新
ps = con.prepareStatement("");
ps.addBatch();
ps.executeBatch();
但在后台,prostgres 驱动程序似乎将查询逐位发送到数据库。
org.postgresql.core.v3.QueryExecutorImpl:398
for (int i = 0; i < queries.length; ++i)
{
V3Query query = (V3Query)queries[i];
V3ParameterList parameters = (V3ParameterList)parameterLists[i];
if (parameters == null)
parameters = SimpleQuery.NO_PARAMETERS;
sendQuery(query, parameters, maxRows, fetchSize, flags, trackingHandler);
if (trackingHandler.hasErrors())
break;
}
有没有可能让他一次发1000来加快速度?
【问题讨论】:
-
PostgreSQL 版本? JDBC驱动版本?您要批处理的查询是什么?至于代码,看来你在说
execute(Query[] queries, ParameterList[] parameterLists, ...) -
我正在批量更新,驱动程序是“9.1-901-1.jdbc4”。我找到了复制 api。但我找不到任何关于它正在阅读的格式的文档。只是“来自 - CSV 文件等”jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/…
-
复制命令应该是 Postgres 通常使用的 COPY 的包装器。有关格式和命令的更多信息:postgresql.org/docs/9.1/static/sql-copy.html
标签: performance postgresql jdbc batch-file