WEB开发网
开发学院数据库DB2 DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的... 阅读

DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 一个在 TRADES 表中 TRADEID 列上的一个普通的关系型索引有助于加速内置 SQL 查询,提示:DB2 VERSION 9.5 可以同时使用 XML 和关系型索引,DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XM

一个在 TRADES 表中 TRADEID 列上的一个普通的关系型索引有助于加速内置 SQL 查询。

提示:DB2 VERSION 9.5 可以同时使用 XML 和关系型索引,就像内置 SQL 语句的关系索引加上 XML 谓词 $t/termDeposit/principal/currency= ” EUR ”的一个 XML 索引。

得到你想要的 XML 查询结果

根据你如何编写一个特定的查询,DB2 能以不同的格式传输查询结果。例如,普通 XQuery 在结果集中以每行一个条目来返回(比如元素或文档片段),即使有多个条目来自于在数据库中的相同文档。另一方面,SQL/XML 函数 XMLQUERY 可以在一行中返回多个条目。让我们看一些例子,在清单 21(SQL/XML)和清单 22(XQuery)中的查询都需要每个交易文档中 partyIds 。在清单 21 中的查询对表中的每个交易文档返回一行,而且在每一行中都包括文档中的两个 partyId 元素。来自相同文档的 partyIds 不能分成两行返回,因为这是一个 SQL select 语句,而且对每个匹配的输入行不能产生超过一行的输出:


清单 21. 每行一篇文档

  select XMLQUERY('$TRADEDOC/FpML/party/partyId') from trades;

结果集:

<partyId>510026</partyId><partyId>67781</partyId> 
 <partyId>510026</partyId><partyId>99114</partyId> 
 <partyId>99114</partyId><partyId>67781</partyId> 
 <partyId>510026</partyId><partyId>67781</partyId> 
 <partyId>99114</partyId><partyId>67781</partyId>

另一方面,在清单 7 中的查询用分开的两行来返回每个 partyId 。这是因为一个 XQuery 返回一系列条目甚至多个源自于相同文档的条目。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB 最佳 实践

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