2014-10-29 66 views
2

我需要在PL-SQL中创建一个非常大的xml文件(最多100k节点)。 哪种方式更快? DBMS_XMLDOM或appendchildxml?什么是更快...... DBMS_XMLDOM vs appendchildxml

+0

Oracle 11g - 我们发现随着兄弟节点数量的增加appendchildxml性能会相当快地降低。我们通过减少插入数量来显着提高性能。我们通过将每个节点及其所有子节点组装在一个小的临时文档中,然后通过appendchildxml将临时文档附加到主文档中,而不是在目标“正在增长”的文档中做所有事情(我们将在短期内看DOM如果可能的话,尝试进一步提高性能 - 当我们有他们时,我会更新我们的研究结果) – Pancho 2014-11-25 06:58:50

回答

1

我们同样使用Oracle 11g R2,并且我们为报告目的创建了一个XML文档。整个过程即。 检索从数据库中,重组的数据和程序集输出XML文件,被采取130秒。

我们假设第一阶段,即。 检索,可能会占用大部分时间,所以我们优化了这一点,并将总时间缩短了40秒,降低到90秒左右。

我们感到惊讶的是它仍然保持“慢” - 所以我们研究了重组装配阶段,并给我们带来惊喜发现时大部分正在采取装配阶段,随着文档的增长,每个appendchildxml语句都会逐渐变慢。

因此,我们删除了appendchildxml,并将其完全替换为dbms_xmldom代码。令人高兴的是,这种改变将整个过程减少到只有9秒,也就是说,一个数量级减少。

基于这个和其他性能增益,我们已经在数据库上看到了dbms_xmldom,我会推荐使用dbms_xmldom。

相关问题