【发布时间】:2015-04-19 21:36:51
【问题描述】:
我需要能够重复处理 XML 文件并将大量数据插入 Oracle 数据库。该过程需要能够创建新记录,或者如果数据已经存在,则更新现有记录。
我可以想到两种方法来处理将 100,000 条记录插入/更新到 Oracle 数据库中。但哪种方法更好?还是有别的办法?
- 尝试插入。如果没有例外,插入工作并且一切都很好。如果出现异常,请捕获并执行 UPDATE。
- 首先查找记录 (SELECT)。如果找不到,请执行 INSERT。如果找到,请执行 UPDATE。 显然,如果 Oracle 表是空的,那么第一种方法通过前面的查找可以节省时间。但是如果该文件之前已导入,然后有人更改了几行并重新导入,则生成的异常数量将变得巨大。 由于查找,第二种方法在空数据库上花费的时间更长,但在后续导入期间不会产生代价高昂的异常。
是否存在处理此类数据的“正常”模式?
谢谢!
【问题讨论】: