xml 数据类型列的索引
来源:互联网 发布:格式工厂 mac破解版 编辑:程序博客网 时间:2024/06/17 12:19
XML 实例作为二进制大型对象 (BLOB) 存储在 xml 类型列中。这些 XML 实例可以很大,并且存储的 xml 数据类型实例的二进制表示形式最大可以为 2 GB。如果没有索引,运行时将拆分这些二进制大型对象以计算非常耗时的查询。例如,请看以下查询:
--WHERE CatalogDescription.exist ('/PD:ProductDescription/@ProductModelID[.="19"]') = 1
为了选择满足 WHERE 子句中条件的 XML 实例,表 Production.ProductModel 的每行中的 XML 二进制大型对象 (BLOB) 将在运行时拆分。然后,计算 exist() 方法中的表达式 (/PD:ProductDescription/@ProductModelID[.="19"]
)。此运行时拆分有可能开销较大,这取决于存储在列中的实例的大小和数目。
如果在应用程序环境中经常查询 XML 二进制大型对象 (BLOB),则对 xml 类型列创建索引很有用。但是,在数据修改过程中维护索引会带来开销。
XML 索引分为两个类别:
- 主 XML 索引
- 辅助 XML 索引
xml 类型列的第一个索引必须是主 XML 索引。使用主 XML 索引时,支持三种类型的辅助索引。这些类型包括 PATH、VALUE 和 PROPERTY。根据查询类型的不同,这些辅助索引可能有助于改善查询性能。
来自:
SQL Server 2005 联机丛书 ----xml 数据类型列的索引
A. 创建和删除主 XML 索引
在以下示例中,XML 索引是针对 xml 类型列创建的:
DROP TABLE TgoCREATE TABLE T (Col1 INT PRIMARY KEY, XmlCol XML)GO-- Create Primary XML index CREATE PRIMARY XML INDEX PIdx_T_XmlCol ON T(XmlCol)GO-- Verify the index creation. -- Note index type is 3 for xml indexes-- note the type 3 is index on XML typeSELECT *FROM sys.xml_indexeswhere object_id = object_id('T')AND name='PIdx_T_XmlCol' —- Drop the indexDROP INDEX PIdx_T_XmlCol ON T
- xml 数据类型列的索引
- ALTER TABLE 失败,因为下列 SET 选项的设置不正确:'ARITHABORT'。请确保 SET 选项可正确用于计算列和/或查询通知和/或 xml 数据类型方法的索引视图和/或索引。
- 修改列的数据类型
- 无效的列索引
- 索引列的选择
- 无效的列索引
- 索引列的选择
- Mongodb修改列的数据类型
- Mysql-03-列的数据类型
- panda: 更改列的数据类型
- Oracle 修改列的数据类型
- 虚拟列上的索引
- 什么样的列使用索引?
- MySQL的多列索引
- 索引的一些案列
- 正确理解Mysql的列索引和多列索引
- 正确理解Mysql的列索引和多列索引
- Mysql的列索引和多列索引
- 软件测试的16种测试类型
- 利用java反射技术提取类信息
- Java网络加载协议(JNLP)
- CppUnit 安装和使用
- 我看不懂
- xml 数据类型列的索引
- 为什么写博
- 我被XML“转义"折腾了一番
- VB复制文件夹的方法(非FSO)
- comparing strings in PHP with the == operator
- VC6.0 debug和release的区别及如何设置
- 一个直观但难的问题
- 关于键保留表(key-preserved table)
- The Django Book中文翻译版【第二版】