Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JOOQ中清除批次?_Java_Sql_Jooq - Fatal编程技术网

Java 如何在JOOQ中清除批次?

Java 如何在JOOQ中清除批次?,java,sql,jooq,Java,Sql,Jooq,我试图在执行多个插入时重用准备好的语句。差不多 InsertValuesStepN<Record> batch = create.insertInto(table, fields); for(int i=0; i<100000; i++) { batch.values(); if(i % 1000 == 0) { batch.execute(); // need to call clearBatch here so we don'

我试图在执行多个插入时重用准备好的语句。差不多

InsertValuesStepN<Record> batch = create.insertInto(table, fields);
for(int i=0; i<100000; i++) {
    batch.values();
    if(i % 1000 == 0) {
        batch.execute();
        // need to call clearBatch here so we don't insert records twice
    }
}
InsertValuesStepN batch=create.insertInto(表、字段);
对于(int i=0;i)为每个批创建新语句:
您可以在每个批上创建一个新语句,而不是重用前一个语句

InsertValuesStepN批处理=null;

对于(int i=0;iThanks但导入API在大容量插入之间不保持语句打开。我看到每次插入后都有关闭和打开准备语句的调用。这通常不会有问题,但我看到打开准备语句需要约20秒。@TrevorKramer:有趣的是,保持打开语句确实值得探索。这可以通过
Query.keepStatement()
API(我假设您调用了它,但在您的问题中忽略了它)实现,但不能通过
loadInto()实现
API。我已经为此创建了一个功能请求:。打开语句需要20秒的时间吗?尽管如此,这似乎太多了……我已经用一个方法的建议更新了答案,我通常不会建议,因为存在开放的客户端性能问题(请测量它是否影响您)。