WEB开发网
开发学院数据库MSSQL Server SQL2005用XML数据类型进行数据建模 阅读

SQL2005用XML数据类型进行数据建模

 2007-05-19 09:42:35 来源:WEB开发网   
核心提示: • 如果您的工作负荷从单独的使用路径表达式的 XML 实例中检索多个值,则将各个 XML 实例中的路径聚集到 PROPERTY 索引中可能会很有用,SQL2005用XML数据类型进行数据建模(5),这种情况通常出现在属性包场合中,此时对象的属性被获取并且其主键值已知,PATH 类

• 如果您的工作负荷从单独的使用路径表达式的 XML 实例中检索多个值,则将各个 XML 实例中的路径聚集到 PROPERTY 索引中可能会很有用。这种情况通常出现在属性包场合中,此时对象的属性被获取并且其主键值已知。

• 如果您的工作负荷涉及到查询 XML 实例中的值,而不知道包含这些值的元素或属性名称,则您可能需要创建 VALUE 索引。这通常发生在子代轴查找中,例如 //author[last-name="Howard"],其中 元素可以出现在层次结构的任意级别上。这种情况还会发生在"通配符"查询中,例如

/book [@* = "novel"],其中查询将查找具有某个值为 "novel" 的属性的 元素。

示例:基于路径的查找

假设下面的查询在您的工作负荷中很常见:

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

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

CREATE XML INDEX idx_xCol_Path on T (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  T

在这种情况下,属性索引很有用,其创建方式如下所示:

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

Tags:SQL XML 数据

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