【问题标题】:what is faster... DBMS_XMLDOM vs appendchildxml什么更快... DBMS_XMLDOM vs appendchildxml
【发布时间】:2014-10-29 15:22:05
【问题描述】:

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

【问题讨论】:

  • Oracle 11g - 我们发现 appendchildxml 性能随着兄弟节点数量的增加而迅速下降。通过最小化插入数量,我们显着提高了性能。我们通过将每个节点及其所有子节点组装在一个小的临时文档中,然后通过 appendchildxml 将临时文档附加到主文档中来做到这一点,而不是在目标“成长”文档中做所有事情(我们将很快查看 DOM如果可能的话,尝试进一步提高性能 - 我会在获得结果时更新我们的发现)

标签: xml oracle plsql


【解决方案1】:

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

我们假设第一阶段,即。 检索,可能会占用大部分时间,因此我们对此进行了优化,并将总时间减少了 40 秒,降至 90 秒左右。

我们很惊讶它仍然“缓慢” - 所以我们调查了重组组装阶段,令我们惊讶的是发现大部分时间都在由 assembly 阶段采用,每个 appendchildxml 语句随着文档的增长而逐渐变慢。

因此,我们去掉了 appendchildxml 并将其完全替换为 dbms_xmldom 代码。

令人高兴的是,这一变化将整个过程缩短到仅 9 秒,即。一个数量级的减少。

基于我们在使用 dbms_xmldom 的数据库上看到的性能提升和其他性能提升,我建议使用 dbms_xmldom。

【讨论】:

    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    相关资源
    最近更新 更多