WEB开发网
开发学院数据库MSSQL Server Microsoft SQL Server 2005 中的 XML 支持(2) 阅读

Microsoft SQL Server 2005 中的 XML 支持(2)

 2007-05-13 09:26:32 来源:WEB开发网   
核心提示: 可以容纳多达 128 层的 XML 层次;在插入和修改的过程中,如果 XML 实例包含更长的路径,Microsoft SQL Server 2005 中的 XML 支持(2)(6),则会被拒绝,类似地,该索引创建如下:CREATE XML INDEX idx_xCol_Property o

可以容纳多达 128 层的 XML 层次;在插入和修改的过程中,如果 XML 实例包含更长的路径,则会被拒绝。

类似地,可以建立一个节点值的前 128 个字节的索引;系统中可以容纳更长的值,但是不会建立索引。

例:基于路径的查找

假定下面的查询在工作负荷中是常见的:

SELECT xCol
FROM  docs
WHERE xCol.exist ('/book[@genre = "novel"]') = 1

路径表达式 /book/@genre 和值“novel”对应于 PATH 索引的键字段。因此,类型 PATH 的次 XML 索引有助于此工作负荷:

CREATE XML INDEX idx_xCol_Path on docs (xCol)
  USING XML INDEX idx_xCol FOR PATH

例:获取对象的属性

考虑下面的查询,它从表 T 的每一行检索书的“genre”、“title”和 ISBN 属性:

SELECT xCol.value ('(/book/@genre)[1]', 'varchar(50)'),
  xCol.value ('(/book/title)[1]', 'varchar(50)'),
  xCol.value ('(/book/@ISBN)[1]', 'varchar(50)')
FROM  docs

属性索引可用于这种情况,该索引创建如下:

CREATE XML INDEX idx_xCol_Property on docs (xCol)
  USING XML INDEX idx_xCol FOR PROPERTY

例:基于值的查询

在下面的查询中,祖先或自己轴 (//) 指定了部分路径,这样,基于 ISBN 值的查询就可以从 VALUE 索引的使用中受益:

SELECT xCol
FROM  docs
WHERE  xCol.exist ('//book[@ISBN = "1-8610-0157-6"]') = 1

VALUE 索引创建如下:

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

Tags:Microsoft SQL Server

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