Java JDBC批量插入-控制插入速度

Java JDBC批量插入-控制插入速度,java,sql,jdbc,Java,Sql,Jdbc,我有一个简单的JDBC批量插入程序。我从一个数据库表中提取数据,并在处理后将这些记录插入到另一个数据库的表中。但是目标数据库存在一些性能问题。因此,目标数据库管理员在我们的程序中请求一个选项来控制每秒插入的记录数 它可能不是动态的。如果他想更改插入速度,他可以相应地更改config属性并重新启动应用程序 我们的源数据库和目标数据库是MQ SQL数据库 有可能吗?一旦插入了指定数量的记录,就可以让线程休眠 int recordsPerSecond = 100; in

我有一个简单的JDBC批量插入程序。我从一个数据库表中提取数据,并在处理后将这些记录插入到另一个数据库的表中。但是目标数据库存在一些性能问题。因此,目标数据库管理员在我们的程序中请求一个选项来控制每秒插入的记录数

它可能不是动态的。如果他想更改插入速度,他可以相应地更改config属性并重新启动应用程序

我们的源数据库和目标数据库是MQ SQL数据库


有可能吗?

一旦插入了指定数量的记录,就可以让线程休眠

        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();
        }
int-recordsPerSecond=100;
int totalRecords=1000;
长睡眠时间=900;//以毫秒为单位(假设插入100行时间隔100毫秒)

对于(int i=1;iYes,这是可能的。但这也很奇怪。限制任何命令序列并不一定困难。我不确定我是否知道您在寻求什么建议。这只是一个分段插入的问题,这样每秒只能将一定数量的插入写入目标db,并在运行时配置该值@user3062946您是对的。它应该是可配置的。但不一定是在运行时。我想要的是JDBC驱动程序级别的配置,以控制每秒刷新到数据库的插入数。@Luiggi Mendoza我知道这很奇怪,但这是我们的要求,因为目标数据库中存在一些限制。您能告诉我吗如何做到这一点?感谢您的回答。您知道JDBC驱动程序级别是否有任何配置可用于控制每秒刷新到数据库的插入数。我不知道是否有JDBC驱动程序实现了此类操作。但是,您也可以暂停程序以减少目标服务器上的负载。这个问题很好地解释了about批量插入。