什么是最大JDBC批量大小?

vly*_*cin 13 java database postgresql jdbc batch-processing

我有一个列表,该列表不断增加.我正在做依赖于列表大小的批量添加.我忘了为指定大小的executeBatch设置限制.

计划工作了几个小时.我现在不想停下来,修理并重新开始.

我的问题是,决定添加批次的大小是什么?批次executeBatch()一次最大容量是多少?我有多少时间可以使用addBatch,而不做executeBatch()

Cra*_*ger 10

PgJDBC对批次有一些限制:

批量处理的好处是减少了网络往返次数.因此,如果您的数据库是您的应用服务器的本地数据,则要少得多.随着批量大小的增加,回报逐渐减少,因为网络等待所花费的总时间很快就会下降,所以通常不会强调尝试尽可能大地批量生产.

如果您正在批量加载数据,请认真考虑使用COPYAPI,通过PgJDBC CopyManager,通过PgConnection接口获取.它允许您将类似CSV的数据流式传输到服务器,以便通过极少的客户端/服务器往返快速批量加载.不幸的是,它的记录显着不足 - 它根本没有出现在主要的PgJDBC文档中,只出现在API文档中.