当前位置:  开发笔记 > 数据库 > 正文

将数据插入Oracle表的最快方法是什么?

如何解决《将数据插入Oracle表的最快方法是什么?》经验,为你挑选了1个好方法。

我正在PL/SQL中编写一个数据转换来处理数据并将其加载到表中.根据PL/SQL Profiler,转换中最慢的部分之一是实际插入目标表.该表有一个索引.

要准备加载数据,我使用表的rowtype填充变量,然后将其插入表中,如下所示:

insert into mytable values r_myRow;

看来我可以通过执行以下操作来获得性能:

在插入期间关闭注销

一次插入多个记录

这些方法是否可取?如果是这样,语法是什么?



1> CaptainPicar..:

最好一次插入几百行,使用PL/SQL表和FORALL绑定到insert语句中.有关详细信息,请参见此处.

还要小心如何构造PL/SQL表.如果可能的话,更喜欢使用"INSERT INTO t1 SELECT ..."直接在SQL中完成所有转换,因为在PL/SQL中逐行操作仍然比SQL慢.

在任何一种情况下,您也可以使用直接路径插入INSERT /*+APPEND*/,它基本上绕过DB缓存并直接分配和写入新块到数据文件.这也可以减少日志记录量,具体取决于您使用它的方式.这也有一些含义,所以请先阅读精细手册.

最后,如果要截断并重建表,则首先删除(或标记不可用)并稍后重建索引可能是值得的.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有