非常慢的Netezza(数据库)批量插入

Joh*_*rts 1 java sql performance insert netezza

我正在使用批量插入和预准备语句将数据插入Netezza.但是,性能非常慢.以下是我的代码:

final int batchSize = 1000;
int count = 0;
for (final MyClass object: myList) {
    ps.setString(1, object.getOne());
    ps.setString(2, object.getTwo());
    ps.setString(3, object.getThree());
    ps.setString(4, object.getFour());
    ps.setString(5, object.getFive());
    ps.setString(6, object.getSix());
    ps.setString(7, object.getSeven());
    ps.setString(8, object.getEight());
    ps.setString(9, object.getNine());
    ps.setString(10, object.get10());
    ps.addBatch();
    if(++count % batchSize == 0) {
        ps.executeBatch();
    }
}
ps.executeBatch(); // insert remaining records
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能加快速度呢?

Nie*_*ree 5

插入语句批处理不会Netezza每个查询的开销产生影响,这将限制这些操作的效率.我建议将数据转储到平面文件并执行nzload/ external table insert 例如,请参阅瞬态外部表.