赛迪网 > IT技术 数据库 > SQL Server
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

SQL 2005 XML 最佳实施策略目录视图

发布时间:2006.10.23 05:02     来源:microsoft    作者:Shankar Pal

用于原生 XML 支持的目录视图

• 目录视图的目的是提供与 XML 用法有关的元数据信息。下面讨论了其中几个目录视图。

XML 索引

XML 索引项出现在目录视图 sys.indexes 中,索引"type"为 3。"name"列包含 XML 索引的名称。

XML 索引还被记录在目录视图 sys.xml_indexes 中,它包含 sys.indexes 的所有列以及一些对 XML 索引有意义的特殊列。列"secondary_type"中的值 NULL 表示主 XML 索引;值"P"、"R"和"V' "分别代表 PATH、PROPERTY 和 VALUE 辅助 XML 索引。

XML 索引的空间利用率可以在表值函数 sys.fn_indexinfo() 中找到。该函数会提供许多信息,例如,所占用的磁盘页数、平均行大小(字节)、记录数以及所有索引类型(包括 XML 索引)的其他信息。对于每个数据库分区都会提供这些信息;XML 索引使用基表的相同分区方案和分区函数。

示例:XML 索引的空间利用率

SELECT sum(Pages)
FROM    sys.fn_indexinfo ('T', 'idx_xCol_Path' , DEFAULT, 'DETAILED')

这会产生表 T 中的 XML 索引 idx_xCol_Path 在所有分区中占用的磁盘页数。如果不使用 sum() 函数,结果将返回每个分区的磁盘页利用率。

检索 XML 架构集合

XML 架构集合在目录视图 sys.xml_schema_collections 中被枚举。XML 架构集合"sys"由系统定义,它包含无须显式加载就可在所有用户定义的 XML 架构集合中使用的预定义命名空间。该列表包含 xml、xs、xsi、fn 和 xdt 的命名空间。其他两个值得一提的目录视图是:sys.xml_schema_namespaces,它枚举了每个 XML 架构集合中的所有命名空间;sys.xml_components,它枚举了每个 XML 架构中的所有 XML 架构组件。

内置的函数 XML_SCHEMA_NAMESPACE(schemaName, XmlSchemacollectionName, namespace-uri) 可产生一个 XML 数据类型实例,该实例包含 XML 架构集合中所含架构(预定义的 XML 架构除外)的 XML 架构片段。

可以用下列方式来枚举 XML 架构集合的内容:

• 在 XML 架构集合的适当目录视图上编写 T-SQL 查询。

• 使用内置函数 XML_SCHEMA_NAMESPACE()。可以在该函数的输出上应用 XML 数据类型方法。然而,您无法修改基础 XML 架构。

• 下面的示例阐述了这些概念。

示例:枚举 XML 架构集合中的 XML 命名空间

对于 XML 架构集合"myCollection"使用以下查询:

SELECT XSN.name
FROM    sys.xml_schema_collections XSC JOIN sys.xml_schema_namespaces XSN
    ON (XSC.xml_collection_id = XSN.xml_collection_id)
WHERE    XSC.name = 'myCollection'

示例:枚举 XML 架构集合的内容

下面的语句枚举了关系架构 dbo 中的 XML 架构集合"myCollection"的内容。

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection')

通过将目标命名空间指定为 XML_SCHEMA_NAMESPACE() 的第三个参数,可以按 XML 数据类型实例的形式获取该集合中的单独 XML 架构,如下所示。

示例:输出 XML 架构集合中的指定架构

下面的语句从关系架构 dbo 中的 XML 架构集合"myCollection"中输出目标命名空间为"http://www.microsoft.com/books"的 XML 架构。

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection', 
N'http://www.microsoft.com/books')

查询 XML 架构

如果您需要查询已经加载到 XML 架构集合中的 XML 架构,可以采用下列方式:

• 在 XML 架构命名空间的目录视图上编写 T-SQL 查询。

• 除了将 XML 架构加载到 XML 类型系统中以外,创建一个包含 XML 数据类型列的表来存储 XML 架构。您可以使用 XML 数据类型方法来查询 XML 列。而且,您可以在该列上生成 XML 索引。然而,需要由应用程序来维护存储在 XML 列中的 XML 架构与存储在 XML 类型系统中的 XML 架构之间的一致性。例如,如果您从 XML 类型系统中删除了 XML 架构命名空间,则还必须从表中删除该命名空间以保持一致性。

(T114)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管