oracle一次提交的上限 Oracle数据库一次执行大量的insert语句,怎样优化?

Oracle数据库一次执行大量的insert语句,怎样优化?1. 原始表中有多少数据?考虑是否可以删除或禁用索引?插入后重新生成2。当业务空闲时,使用append和parallel进行insert3。

Oracle数据库一次执行大量的insert语句,怎样优化?

1. 原始表中有多少数据?考虑是否可以删除或禁用索引?插入后重新生成

2。当业务空闲时,使用append和parallel进行insert

3。您还可以设置每1W提交一条记录

以加快Oracle数据库的数据插入速度。

从编程的角度来看:

1。使用绑定变量来实现一个预编译和多次执行的效果。如果不使用绑定变量,数据库每次都会分析SQL并消耗资源。

2使用Oracle提供的批处理接口,减少网络传输次数,提高效率

3适当增加提交间隔,提交指令消耗更多数据库资源,提交前尽量插入更多数据。1000多条建议。

4. 使用insert语句的hint(如append)和nologing选项来减少数据库日志注册。

5. 从数据库的角度考虑使用多进程插入或并行提示插入

1。将表更改为nologing模式,这样就不需要注册回滚日志了

2。对表进行分区,使不同的分区落在不同的硬盘上

3。删除表的索引,插入数据后还原

4。增加数据库缓冲区

5使用SSD存储和其他高效硬盘作为数据库存储

其他细节:

例如,将程序部署到数据库服务器,然后进行操作以减少网络消耗

插入数据,并将程序输出日志重定向到硬盘

没有好办法,最后一次提交

如果需要,根据条件过滤数据并分别提交

例如:

insert into table_u2;a select*from table_2;b where type=1

commit

insert into table_2;a select*from table_2;b where type=2

commit

就是一个例子。最后一种是成套的