IT分销/经销数据库

DB2 9 中 15 个 pureXML 性能最佳实践

简介DB2 9 中的 pureXML 支持为管理 XML 数据提供了有效的、多方面的功能。对于很多 XML 应用程序而言,性能是高度优先考虑的一个方面。DBA 和应用程序设计人员都可以通过他们份内的工作来确保良好的性能。首先,我们有关于 DB2 各个方面的所有传统的性能指南,包括 CPU/内存/...显示全部

简介

DB2 9 中的 pureXML 支持为管理 XML 数据提供了有效的、多方面的功能。对于很多 XML 应用程序而言,性能是高度优先考虑的一个方面。DBA 和应用程序设计人员都可以通过他们份内的工作来确保良好的性能。首先,我们有关于 DB2 各个方面的所有传统的性能指南,包括 CPU/内存/磁盘配置的平衡、表空间和缓冲池的调优、锁、日志记录、查询执行计划等。所有这些话题在之前的 DB2 文章里都曾论述过(见 参考资料),并在管理 DB2 中的 XML 数据时仍然适用。

DB2 9 是同时支持关系型数据与 XML 数据的新一代数据服务器。请到 DB2 9 技术资源中心 获取更多的关于 DB2 9 的技术文章、教程、下载以及多媒体信息。


幸运的是,这些问题当中有很多问题是由 DB2 的自治存储和自调优内存管理等自治功能来处理的。它们为很多应用程序提供了高水平的性能,要求的手动干预很少。但是,具有更高性能需求的 XML 应用程序还可以从其他性能方面的考虑当中受益。本文集中讨论这方面的情形,同时给出为 DB2 9 中与 XML 相关的应用程序取得最佳性能的提示和指南。
本文将讨论和阐述 15 个 XML 性能提示(排序不分先后)。这 15 个提示涵盖了很多领域,但是经验表明,存在性能问题的应用程序通常只需要应用其中一两个提示就能达到所需的性能。提示 1: 理智选择 XML 文档的粒度。 提示 2: 为了取得更好的 XML 性能,使用 DMS 和更大的页。 提示 3: 必要时,如何将 XML 数据放入一个单独的表空间中。 提示 4: 如何配置 DB2,以便快速地成块插入 XML 数据。 提示 5: 使用新的快照监视器元素检查 XML 性能。 提示 6: 了解 XML 模式验证的开销。 提示 7: 在 XPath 表达式中,尽可能使用全限定路径。 提示 8: 定义倾斜的 XML 索引,并避免为任何东西都建索引。 提示 9: 将文档过滤谓词放入 XMLEXISTS 中,而不是放入 XMLQUERY 中。 提示 10: 使用方括号 [ ] 来避免 XMLEXISTS 中的 Boolean 谓词。 提示 11: 使用 RUNSTATS 收集 XML 数据和索引的统计信息。 提示 12: 如何使用 SQL/XML 发布视图将关系数据暴露为 XML。 提示 13: 如何使用 XMLTABLE 视图以关系格式暴露 XML 数据。 提示 14: 对于短小的查询或 OLTP 应用程序,使用带参数占位符的 SQL/XML 语句。 提示 15: 避免 XML 插入和检索期间出现代码页转换。

在对这些性能提示的讨论中,我们假设您熟悉基本的 DB2 管理和性能实践,并熟悉基本的 DB2s pureXML 支持。例如,您应该知道 XML 列、XML 索引,以及如何用 SQL/XML 和 XQuery 查询 XML 数据。

收起
参与9

查看其它 7 个回答liuliping的回答

liulipingliuliping系统工程师

DB2 XML 性能提示

提示 1: 理智选择 XML 文档的粒度


当设计 XML 应用程序和 XML 文档结构时,您可能面临将哪些业务数据放在一个单独的 XML 文档中的选择。例如,在下面的部门表中,我们为每个部门使用一个 XML 文档(中等粒度)。如果部门是应用程序访问和处理数据所依赖的主要粒度,那么这是合理的选择。或者,我们也可以决定将多个部门组合到一个 XML 文档中,例如,将属于同一个单位的部门放入一个 XML 文档中(粗粒度)。然而,如果通常一次只处理一个部门,那么这种粒度带来的性能就是次优的。
表 1. 创建表 dept( unitID char(8), deptdoc xml)



unitIDdeptdoc
WWPR[table=0%]
         Jim Qu      408 555 1212            Peter Pan      216   


WWPR[table=0%]
         Matt Foreman      416 891 7301      216      This dept supports sales world wide


S-USE...
......


我们还可以决定为每个雇员使用一个 XML 文档(细粒度),并使用一个附加的 “dept” 属性,表明他或她属于哪个部门。如果雇员本身使用经常独立于同部门其他雇员被访问和处理的业务对象,那么这会是一个很好的选择。但是,如果应用程序常常一起处理一个部门中的所有雇员,那么每个部门一个文档会更好一些。
IT分销/经销 · 2011-05-16
浏览548

回答者

liuliping
系统工程师

liuliping 最近回答过的问题

回答状态

  • 发布时间:2011-05-16
  • 关注会员:1 人
  • 回答浏览:548
  • X社区推广