微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.5)
附注:微软认证考试70-461范围
主 XML 索引对 XML 列中 XML 实例内的所有标记、值和路径进行索引。xml 数据类型列中的 XML BLOB 的已拆分和持久的表示形式。
xml 类型列指定路径表达式,则 PATH 辅助索引可以提高搜索的速度。/root/Location,仅指定一个路径
或
/root/Location/@LocationID[.="10"],其中路径和节点值均指定。
/Root/ProductDescription/@*[. = "Mountain Bike"] 或 //ProductDescription[@Name = "Mountain Bike"],且没有完 全指定路径或路径包含有通配符,则生成基于主 XML 索引中的节点值所创建的辅助 XML 索引可以更快地获得结果。
//author[LastName="someName"],其中 <LastName> 元素的值已知,但是 <author> 父级可以出现在任何地方。
/book[@* = "someValue"],其中查询将查找包含值为 "someValue" 的属性的 <book> 元素。
PROPERTY 辅助索引xml 类型的 value() 方法检索对象属性并且知道对象的主键值时,会发生这种情况。通过将选项 ALLOW_ROW_LOCKS 设置为 OFF 来修改该索引。 当 ALLOW_ROW_LOCKS 为 OFF 时,不会锁定行,并且可以使用页级锁和表级锁获得对指定索引的访问权限。
ALTER INDEX 索引名 on 表名 SET (ALLOW_ROW_LOCKS = OFF)禁用XML索引
ALTER INDEX 索引名 on 表名 DISABLE启用XML索引修改 XML 索引时以下选项不可用:
在创建索引时,将对这些路径进行评估,这些路径所指向的节点将被拆分并存储于 SQL Server 中的关系表内。在大多数情况下,通过创建选择性 XML 索引而不是普通 XML 索引,可以改善性能和提高存储效率。
Xml
<book> <created>2004-03-01</created> <authors>Various</authors> <subjects> <subject>English wit and humor -- Periodicals</subject> <subject>AP</subject> </subjects> <title>Punch, or the London Charivari, Volume 156, April 2, 1919</title> <id>etext11617</id></book>
/book/title 路径和 /book/subjects 路径查询此数据,则可以创建以下选择性 XML 索引:
Transact-SQLCREATE SELECTIVE XML INDEX 索引名ON 表名(列名)FOR ( pathTitle = '/book/title/text()' AS XQUERY 'xs:string', pathAuthors = '/book/authors' AS XQUERY 'node()', pathId = '/book/id' AS SQL NVARCHAR(100))
* 的 XPath 表达式指定要建立索引的节点:例如 /a/b/c/*、/a//b/* 或 /a/b/*:c。
//<step> 的情况允许作为特例。
一般要求和限制
对支持的对象的限制
与存储相关的限制
// 映射某些或所有节点时,已建立索引的节点的最大数目是 60。
// 映射节点时,已建立索引的节点的最大数目是 200。
在您使用 CREATE 或 ALTER 语句对索引执行操作时,将重新生成选择性 XML 索引。
其他限制
在数据库优化顾问中不支持选择性 XML 索引和辅助选择性 XML 索引。
修改选择性XML索引ALTER INDEX 索引名ON 表名FOR ( ADD pathSubjects = '/book/subjects' as XQUERY 'node()' , REMOVE pathId)删除选择性索引
DROP INDEX 索引名 ON 表名
第5.2部分
第5.3部分
第5.4部分