2 oracle
我在加载数据时遇到问题.我必须在Oracle数据库中将800,000行从一个表复制到另一个表.
我首先尝试了10,000行但是花费的时间并不令人满意.我尝试使用"BULK COLLECT"和"INSERT INTO SELECT"子句,但对于这两种情况,响应时间大约为35分钟.这不是我想要的反应.
有没有人有什么建议?
Anirban,
使用"INSERT INTO SELECT"是填充表格的最快方法.您可能希望使用以下一个或两个提示来扩展它:
只需在笔记本电脑上使用附加提示,即可在5秒内复制800,000个非常小的行:
SQL> create table one_table (id,name)
2 as
3 select level, 'name' || to_char(level)
4 from dual
5 connect by level <= 800000
6 /
Tabel is aangemaakt.
SQL> create table another_table as select * from one_table where 1=0
2 /
Tabel is aangemaakt.
SQL> select count(*) from another_table
2 /
COUNT(*)
----------
0
1 rij is geselecteerd.
SQL> set timing on
SQL> insert /*+ append */ into another_table select * from one_table
2 /
800000 rijen zijn aangemaakt.
Verstreken: 00:00:04.76
Run Code Online (Sandbox Code Playgroud)
你提到这个操作需要35分钟.你可以发布一些更多的细节,所以我们可以看到究竟花了35分钟?
问候,Rob.
| 归档时间: |
|
| 查看次数: |
2316 次 |
| 最近记录: |