Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 插入表的有效方法_Oracle_Insert_Oracle10g - Fatal编程技术网

Oracle 插入表的有效方法

Oracle 插入表的有效方法,oracle,insert,oracle10g,Oracle,Insert,Oracle10g,你好 我们需要在一个自定义表中插入大约800000条记录,现在只需一个简单的insert语句就需要30多分钟。我们将从文件中读取记录,并使用简单的insert语句创建一个.sql文件。我相信除了正常的方式外,还有一种插入记录的有效方式 我试过下面的方法 /追加/…。由于每个insert语句之后都要提交,所以所花费的时间比以前多。所以这是不可能的 全部插入 进入c_表X,X,X值“”,“”, 进入c_表X,X,X值“”,“”, 进入c_表X,X,X值“”,“”, 从双重选择中选择1; 对于1000

你好

我们需要在一个自定义表中插入大约800000条记录,现在只需一个简单的insert语句就需要30多分钟。我们将从文件中读取记录,并使用简单的insert语句创建一个.sql文件。我相信除了正常的方式外,还有一种插入记录的有效方式

我试过下面的方法

/追加/…。由于每个insert语句之后都要提交,所以所花费的时间比以前多。所以这是不可能的 全部插入 进入c_表X,X,X值“”,“”, 进入c_表X,X,X值“”,“”, 进入c_表X,X,X值“”,“”, 从双重选择中选择1; 对于1000计数,选项2是好的,但对于批量插入,其再次需要超过30分钟。 如果有其他选择,请分享

注意:我不能使用sqloader或datapump,因为我们没有数据库密码

问候,,
Prashanth

不要从输入数据创建sql文件。相反,基于源文件创建一个并查询它-您应该能够使用append选项运行整个insert,并且它所花费的时间应该比所有单个insert语句少得多。

如果您没有数据库密码,SQL文件有什么用?您需要登录数据库才能运行.sql文件。800000条单独的SQL语句(其中没有一条使用绑定变量)速度会非常慢—您的大部分时间可能都花在分析800000条单独的SQL语句上。SQL*加载器将从根本上提高效率。一个简单的Java/C/app,用绑定变量创建一条语句,并在800000行上迭代,效率会更高。@JustinCave:这被设置为一个批处理作业过程,将记录插入到自定义表中。它将由X用户执行,该用户的密码将被加密。我相信要使用SQL*Loader,我们需要传递用户名/密码。敬请建议。有关SQL*Loader的更多信息,请在30分钟内查看800000行。这是每分钟26000行,或每秒444行。在我看来,这对于解释SQL语句并运行它们来说还不错。完成此任务需要多少时间?Oracle在解析大型INSERT ALL语句时经常遇到问题。尝试用UNIONALL方法替换它,并将单个语句分解为几个较小的语句。有关更多信息,请参见我的回答:我无法使用外部表,因为该文件将仅在ApplicationServer中可用,并且数据目录将在DB server中创建。请在这方面帮助我。我完全无法解决这个问题。可以使用Samba共享将文件夹从app server共享到db server。不过,别问我怎么做;我现在工作的地方就是这样做的。