我有一个简单的JDBC批量插入程序。我从一个数据库表中获取数据,并在处理后将这些记录插入另一个数据库中的表。但目标数据库存在一些性能问题。因此,目标数据库管理员在我们的程序中请求一个选项来控制每秒插入的记录数。
它可能不是动态的。如果他想更改插入速度,他可以相应地更改配置属性并重新启动应用程序。
我们的源和目标数据库是MQ SQL数据库。
有可能吗?
答案 0 :(得分:1)
您可以在插入指定数量的记录后让线程进入休眠状态。
int recordsPerSecond = 100;
int totalRecords = 1000;
long sleepTime = 900; // in milis (Assuming that 100 mili seconds lapsed in inserting 100 rows)
for(int i=1; i<=totalRecords; i++){
if(i%recordsPerSecond==0)
Thread.sleep(sleepTime);
DAO.insert();
}