繁体中文
设为首页
加入收藏

推荐

公告

推荐文章
· XML无处不在——DB2 9给...
· DB2 9.5 提供给 .NET开发...
· 基于 pureXML 技术的数据...
· Rational Portfolio Man...
· DB2 9 中基于字符的字符...
· DB2 9和ASP.NET2.0构建下...
· DB2 9和ASP.NET2.0构建下...
· DB2 9 pureXML 性能解析
· 在DB2上建立database Pa...
· 抢先体会Oracle 11g的新特性
热点文章
广告

当前位置:设计首页 >> 程序开发 >> 数据库 >> DB2 9 pureXML 性能解析

DB2 9 pureXML 性能解析 (2)

2008-01-05 08:45:23  作者:  来源:互联网  浏览次数:38  文字大小:【】【】【
简介:  和其他数据库一样,DB2® V8 XML Extender 提供了两种针对 XML 的存储和访问模型:XML 文档可作为未解析文本完整地存储在 CLOB 列中,也可以被映射和分解到一套关系表中。这两种选择都有一些已知的性能限 ...
关键字:性能
  比较 CLOB 插入和 XML 插入

  在第一个测试中,我们顺序插入 100,000 个具有或不具有索引的文档,像许多 OLTP 应用程序那样在每个文档之后提交。图 1 中的结果显示了 XML 和 CLOB 列插入之间的相对占用时间(越低越好)。将 XML 插入的占用时间用作比较基线 (100%),维护 6 个 XML 索引仅需很小的开销(在我们的场景中是 5%)。

  图 1:比较 XML 和 CLOB 列的单用户插入性能

  比较 XML 和 CLOB 列的单用户插入性能

  向 CLOB 列插入相同的 XML 数据约占用一半的时间(53%)。这是因为避免了 XML 解析和对 XML 数据的进一步处理。简单地说,XML Extender “索引表”对应 CLOB 列,真正的 XML 索引对应 XML 列。在插入时维护索引表需要 XML 解析和额外的关系插入,因为选择的 XML 元素和属性值是分别提取和存储的。因此,插入占用时间至少等于 pureXML 插入的占用时间,在我们的场景中甚至高出了 23%。。

  图 1 中的试验对 DB2 表空间使用了 no file system caching 选项。如果您允许 DMS 表空间容器使用文件系统缓冲(图 2),那么 XML 插入性能仅有少量改进,而 CLOB 插入性能却会下降。因为 CLOB 插入使用直接写入的方式,所以无需文件系统缓存,而仅有纯开销。然而,如果不涉及 XML 解析,那么文件系统缓存能够帮助提高对 CLOB 列的读操作。

  图 2:文件系统缓存对 XML 和 CLOB 列插入的影响(无索引或索引表)

  图 2:文件系统缓存对 XML 和 CLOB 列插入的影响(无索引或索引表)。比较 XML 和 CLOB 列的单用户插入性能

  单用户数据库应用程序非常少见,因此考察并发工作负载的性能行为十分重要。我们将插入测试修改为使用 10 个各自具有到数据库的独立连接的并发线程,每个线程连续插入 10,000 个文档。 图 3 显示增加的工作负载密度大大影响了 CLOB 性能。虽然 CLOB 插入的速度在单用户测试中是 XML 插入的两倍(图 1),但是它们在多用户测试中却慢了两倍(207%)。这是因为 CLOB 插入从并行性中的获益不如 XML 列插入多。随着并发程度的提高,XML 列缓冲的插入比 CLOB 的并发直接写入更具伸缩性。

  图 3:XML 和 CLOB 列的多用户插入性能比较

  XML 和 CLOB 列的多用户插入性能比较。文件系统缓存对 XML 和 CLOB 列插入的影响(无索引或索引表)

  图 4 表明并发性加速对 XML 列的作用要远远高于对 CLOB 列的作用。将单用户 XML 插入用作 100% 基线,我们的系统和配置允许 10 个并发插入流在 18% 的时间内插入相同的 100,000 个文档,速度快了 5 倍。CLOB 插入无法从并发性中获得相同的益处,是基线的37%,仅是非并发 CLOB 插入的 1.4 倍。

  图 4:XML 和 CLOB 列插入的并发加速

  XML 和 CLOB 列插入的并发加速

  我们还使用了 1000、5000、10,000 和 50,000 个文档进行了全部这些插入测试。正如所料,CLOB 和 XML 列占用的插入时间和插入的文档数成线性比例。因此为了简便起见,我们省略了相应的图表。

[1] [2] [3] [4]


相关文章
ASP.NET中常用的优化性能方法详解
赤手空拳 提升Vista系统安全防范性能