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

  用于原生 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 架构命名空间,则还必须从表中删除该命名空间以保持一致性。

时间: 2024-11-18 08:21:36

SQL SERVER 2005 XML 最佳实施策略目录视图的相关文章

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

本文探讨 SQL Server 2005 中内置的 XML 支持.描述了这种支持如何与 .NET 框架 V2.0 和本机代码(例如 OLEDB 和 SQLXML)均支持的客户端编程相集成. 一.简介 可扩展标记语言 (XML) 作为一种与平台无关的数据表示形式已被广泛采用.它对于在松散耦合且完全不同的系统,以及各种企业到企业 (B2B) 应用和工作流范畴内交换信息是很有用的.数据交换已成为 XML 技术的主要驱动力之一.. XML 在企业应用程序中的使用正日益广泛,它主要用于对半结构化和非结构化

从 SQL Server 2005 中处理 XML

一.简介 Microsoft SQL Server 2005 中的重大更改之一是包含了 XML 数据类型.此数据类型是第一类类型,就像 INT 或 VARCHAR 一样,而且 SQL Server 2005 允许使用一系列 XML 特定的函数对此数据类型进行就地查询和处理.它还支持存储数据库中的 XML 架构的集合,从而启用基于数据库的架构验证.另外,SQL Server 2005 大大地扩展了 XML 组合(SELECT ... FOR XML 语句)的功能,扩展了 OpenXML() XML

通过 SQL Server 2005 索引视图提高性能

本文介绍了 SQL Server 2005 Enterprise Edition 中经过改进的索引视图功能.文中对索引视图进行了说明介绍,并讨论了可通过该功能改善性能的一些具体情况 一.索引视图 多年以来,Microsoft SQL Server 一直支持创建称为视图的虚拟表.通常,这些视图的主要作用是: • 提供一种安全机制,将用户限制到一个或多个基表的某个数据子集中. • 提供一种机制,允许开发人员自定义用户通过逻辑方式查看存储在基表中的数据的方式. 通过 SQL Server 2000,S

SQL Server 2005可伸缩性和性能的计划(1)

本白皮书提供了关于不同报表服务实现架构中可伸缩性的相关内容.也提供了一些基于使用Microsoft SQL Server Reporting Services完成您自己的性能测试的指导方针.建议和提示. 简介 Microsoft SQL Server Reporting Services是一个报表平台,包括可扩展和可管理的中央管理报表服务器和可扩展的基于Web.桌面的报表交付.报表服务是微软综合商业智能平台的重要组成部分.对于许多组织,通过报表来交付信息是一个非常重要的日常商务环节.因此,报表性

Microsoft SQL Server 2005 中的 XML 选项

本文介绍 Visual Studio 2005/SQL Server 2005 环境中用于处理 XML 数据的三个选项,包括使用方案以及指导用户在各选项之间进行选择的指南. 一.System.Xml.SQLXML 和 XML 数据类型简介 本节简要介绍 Microsoft SQL Server 2000 中提供的 XML 支持的发展历史,并概要介绍 Microsoft Visual Studio 2005/SQL Server 2005 环境中提供的用于处理 XML 和关系数据的三个选项.这三个

SQL Server 2005报表设计:最佳实践和指导

本文包含了Microsoft SQL Server报表服务报表设计的技巧和最佳实践.本文提供一些基本的设计问题和一些报表服务的功能. 关于这篇文档 从使用数据控件,到使用什么格式,到如何分发报表,报表制作者面对着很多种选择.Microsoft SQL Server 报表服务提供了丰富的报表设计和格式的支持,从基于纸介质表格报表到带有图片和钻取功能的交互式报表 这篇文档包括了报表制作和设计中的指导.建议和技巧.本文档的目的在于解释一般性的问题并对初学者提供指导建议.报表服务联机丛书提供了报表的制作

SQL Server 2005中三种插入XML数据的方法

server|xml|插入|数据 我们知道SQL Server 2005中增加了XML类型,也就是说在创建表的时候可以指定某一列为XML类型,如:CREATE TABLE customers(  name VARCHAR(20) NOT NULL PRIMARY KEY,    description XML) 那么如何向XML类型的列中插入数据呢?基本上有三种办法:1.直接使用字符串,如INSERT INTO customers (feedName, feedXML) VALUES  ('Ra

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

四.SQL Server 2005 中的客户端 XML 处理 XML 数据类型的客户端支持.NET 框架 V2.0 中的 ADO.NET XML 支持 在 SqlDataReader.GetSqlXml() 方法的 System.Data.SqlTypes 命名空间中,XML 数据类型是作为类 SqlXml 公开的.可以使用 SqlXml.CreateReader() 函数从 SqlXml 对象获得 XmlReader. 类型化 XML 列的 XML 架构集合的名称由三部分组成,可以从 XML

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

XML 数据修改 SQL Server 2005 提供了用于数据修改的构造作为对 XQuery 的一个扩展.子树可以在指定的节点之前或之后插入,或者作为最左边或最右边的子节点插入.此外,子树也可以插入到父节点,在这种情况下,它成为父节点最右边的子节点.属性.元素和文本节点插入都支持. 支持删除子树.在这种情况下,整个子树就从 XML 实例中被移除. 标量值可以用新的标量值进行替换. 例:将子树插入 XML 实例 这个示例显示了 modify() 方法的使用,它将一个新的<section> 元素