Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database 在Oracle中处理15000多行_Database_Oracle_Csv - Fatal编程技术网

Database 在Oracle中处理15000多行

Database 在Oracle中处理15000多行,database,oracle,csv,Database,Oracle,Csv,我正在开发一个需要大量数据的应用程序。这些数据存储在SAP某大型企业规划工具中,需要加载到Oracle数据库中。我所说的数据有15000多行,每行有21列 每天与SAP进行4次交互时,这些15000行将被导出并加载到Oracle数据库中。我将尝试解释我现在为实现目标所做的工作: 将数据从SAP导出到CSV文件 删除Oracle数据库中的所有行 加载导出的CSV文件并将其导入Oracle数据库 从中可以得出结论,如果行中有更改,则必须更新Oracle数据库中的数据。这个过程大约需要1分钟 现在我想

我正在开发一个需要大量数据的应用程序。这些数据存储在SAP某大型企业规划工具中,需要加载到Oracle数据库中。我所说的数据有15000多行,每行有21列

每天与SAP进行4次交互时,这些15000行将被导出并加载到Oracle数据库中。我将尝试解释我现在为实现目标所做的工作:

将数据从SAP导出到CSV文件 删除Oracle数据库中的所有行 加载导出的CSV文件并将其导入Oracle数据库 从中可以得出结论,如果行中有更改,则必须更新Oracle数据库中的数据。这个过程大约需要1分钟


现在我想知道检查Oracle数据库中每一行的CSV文件中的更改是否会更快。我之所以在第一次尝试之前问这个问题,是因为它需要大量的编码来完成我的问题。也许以前有人做过类似的事情,可以为我提供最佳解决方案。

所有的评论都帮助我缩短了时间。首先截断,然后使用Oracle DataAccess库而不是OleDb插入所有行。

如果您使用SQL*Loader之类的工具将数据放入最终表中,仅更改更改的数据可能不会更快。我们所做的类似操作是在CSV文件上定义一个外部表。然后将物化视图定义为SELECT*FROM EXT_TABLE,按需刷新完成。然后,物化视图就是我们在Oracle中查询并创建索引等的表。然后,刷新数据的过程分为两步-首先将数据导出到CSV文件,然后调用DBMS_MVIEW.REFRESH以完成刷新MVIEW。在我们的环境中,这大约需要10-15秒的时间来处理60000行。哪个过程需要一分钟?第一步?第二步?还是第三步?还是总的来说需要一分钟?如果所有这些加在一起,你有每一步的时间细分吗?如果你的电脑每天忙4分钟会有什么问题?@MarkSetchell,整个过程需要1分钟。我知道,如果你每天工作8小时,这算不了什么,但我想让申请尽可能高效。第1步大约需要10秒,第2步需要5秒,剩下的部分由C来完成,因为它需要在其中循环很多次。@KimBergHansen,我来看看你的建议。如果你需要删除表中的所有行,你可以直接将其截断。@alikox,感谢你提供使用TRUNCATE而不是delete的提示。快多了!