oracle中如何加快序列插入速度

问题描述 投票:0回答:1

我有一个包含大约 500 万条记录的表。在特定的一天,我们将这些记录从源表传输到目标表。唯一的列区别是目标表有一个序列列。为此,我创建了一个缓存为 10000 的序列。插入查询将如下所示:

insert into target select seq_name.nextval, * from source;

添加序列后,上述语句需要 2 分钟才能完成。我尝试了其他几种方法,例如首先将记录添加到目标表,然后更新序列或稍后使用合并来更新序列。但总是需要更多时间。

还有其他方法可以提高插入查询的性能吗?

oracle plsql
1个回答
0
投票

怎么样

insert into target
select ROWNUM, s.* from source s;

然后,如果您要向其中添加更多行,请创建一个以(当前)

MAX + 1
序列列的值开始的序列。

此外,您宁愿指定要选择和从中提取的列,不要使用

*
通配符,因为最佳实践

© www.soinside.com 2019 - 2024. All rights reserved.