WEB开发网
开发学院数据库DB2 DB2 9 pureXML与CLOB或分解式XML存储之间的性能对... 阅读

DB2 9 pureXML与CLOB或分解式XML存储之间的性能对比

 2010-02-16 14:59:52 来源:WEB开发网   
核心提示:CLOB和XML列的XML查询比较为了评估 XML和CLOB列之间的查询性能差异,本文设计了5个查询来涵盖以下常见的搜索和检索情况:对全部文档进行全文档检索,DB2 9 pureXML与CLOB或分解式XML存储之间的性能对比(3),无谓词对匹配某个标准的一个文档进行全文档检索(一个谓词)对匹配某个标准的多个文档进行全

CLOB和XML列的XML查询比较

为了评估 XML和CLOB列之间的查询性能差异,本文设计了5个查询来涵盖以下常见的搜索和检索情况:

对全部文档进行全文档检索,无谓词

对匹配某个标准的一个文档进行全文档检索(一个谓词)

对匹配某个标准的多个文档进行全文档检索(多个谓词)

对全部文档进行部分检索

对匹配某个标准的全部文档进行部分检索

这些操作使用如下 5个查询实现:

Q1(Select*):选择全部 XML文档(选择 <table>中的全部文档)

Q2(1Pred1Doc):返回一个给定帐号的客户文档

Q3(5PredSome):返回全部主要地址在加利福尼亚、拥有美元帐户、尚未达到高级客户级别的女性客户的客户文档

Q4(PartialAll):返回每个客户的姓名及其帐户的余额总数

Q5(PartialSome):获取全部在其任意帐户中持有 IBM 股票的客户的主要电子邮件地址

对于CLOB 来说,这些查询使用具有 XML Extender提取函数的SQL 表示。 对于XML列来说,这些查询使用XQuery 表示法。无论 XQueries 是嵌入在SQL中还是单独执行,在我们的测试中并没有性能区别。全部查询和某些示例数据在可下载的zip文件中提供。

图 5 显示了对pureXML和CLOB进行的全部 5个测试查询的查询性能(占用时间)。您可看到pureXML查询的速度可以很轻松地达到CLOB列中的XML 速度的20、30 或 40 倍。这些是没有用于表空间的系统文件缓存的默认设置的结果。图 6包括具有文件系统缓存的相同结果。文件系统缓存仅对查询Q1(检索全部文档,无谓词运算)有较大影响。在没有文件系统缓存的情况下,XML和CLOB列的Q1 执行效果类似,不在缓冲池进行缓冲的CLOB列略微落后(10%)。文件系统缓存大大改进了CLOB 检检索性能(参见 图 6),因此查询Q1 速度能够达到XML列的两倍以上。这是因为从 XML列读取数据需要串行化或将已解析的XML 转换回文本格式。在没有文件系统缓存的情况下,XML列在DB2 缓冲池进行缓冲而 CLOB列则不是,从而可降低开销。

图 5:查询性能,无索引,无文件系统缓存

上一页  1 2 3 4 5 6  下一页

Tags:DB pureXML CLOB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接