只是一个简单的案例。我需要在表A中插入4000万条记录。每个插入语句,我都会使用序列对象来存储。示例:
insert into table A ( objId,name,location ) values ( objId.nextval, ?,?);
而不是我正常循环来插入这个表A,我可以为这种插入命令制作多线程吗?可能是objId值将与其他线程共享?可以是线程将与其他线程获得相同的值吗?
故意我想让这个过程更快。
答案 0 :(得分:4)
序列的要点是在多用户系统中生成唯一的数字。您可以(如果您的数据库没有首先崩溃)同时拥有一百万个会话,每个会话运行INSERT
语句40次,并且您获得了4000万个不同的数字。
话虽这么说,如果您尝试加载4000万行数据,运行INSERT
4000万次并不是我的首选,特别是如果您不打算批量处理声明电话。使用单个INSERT
执行4000万行的直接路径加载可能会更有效。