informix 锁表问题 150
最近在做个项目,需要一次性导入4W-5W条数据到informix数据库中,我写了个循环进行插入,当一条条插入的时候会报内存溢出,当一次插入18条时当插入到3w多条的时候程...
最近在做个项目,需要一次性导入4W-5W条数据到informix数据库中,我写了个循环进行插入,当一条条插入的时候会报内存溢出,当一次插入18条时当插入到3w多条的时候程序就报 找不到表错误,这时候表被锁了,我不明白为什么就我一个人插入数据也会锁表,求解。
插入操作的代码如下:
..
..
StringBuffer sql = new StringBuffer();
PreparedStatement pst = null;
con.setAutoCommit(false);
int deal_index = 18;//一次性插入18条数据
int temp = deal_index;
//需要的数据保存在list中,里面保存4W到5W条数据
for (int i = 0; i < list.size(); i+=deal_index) {
sql.delete(0, sql.length());
sql.append("set lock mode to wait 10");
pst = con.prepareStatement(sql.toString());
pst.executeUpdate();
sql.delete(0, sql.length());
for (int j = i; j < temp; j++) {
sql.append("insert into au_newaccount values('").append(list.get(j)).append("',").append(type).append(");");
}
temp += deal_index;
if(temp >list.size()){
temp = list.size();
}
pst = con.prepareStatement(sql.toString());
pst.executeUpdate();
Thread.sleep(10);
}
con.commit();
System.out.println("插入完成");
但是informix数据库刚建的,日志应该不会满啊 展开
插入操作的代码如下:
..
..
StringBuffer sql = new StringBuffer();
PreparedStatement pst = null;
con.setAutoCommit(false);
int deal_index = 18;//一次性插入18条数据
int temp = deal_index;
//需要的数据保存在list中,里面保存4W到5W条数据
for (int i = 0; i < list.size(); i+=deal_index) {
sql.delete(0, sql.length());
sql.append("set lock mode to wait 10");
pst = con.prepareStatement(sql.toString());
pst.executeUpdate();
sql.delete(0, sql.length());
for (int j = i; j < temp; j++) {
sql.append("insert into au_newaccount values('").append(list.get(j)).append("',").append(type).append(");");
}
temp += deal_index;
if(temp >list.size()){
temp = list.size();
}
pst = con.prepareStatement(sql.toString());
pst.executeUpdate();
Thread.sleep(10);
}
con.commit();
System.out.println("插入完成");
但是informix数据库刚建的,日志应该不会满啊 展开
2010-03-07
展开全部
去掉informix日志后再试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询