![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Если запрос основан на значении, например: /Root/ProductDescription/@*[. = "Mountain Bike"] или //ProductDescription[@Name = "Mountain Bike"], и если путь задан не полностью либо он включает в себя символ-шаблон, скорость выполнения запросов можно повысить, построив вторичный XML-индекс по значениям узлов первичного XML-индекса.
Ключевые столбцы индекса VALUE (значение узла и значение пути) содержатся в первичном XML-индексе. Индекс VALUE может оказаться полезным в тех случаях, если рабочая нагрузка включает в себя запросы значений из экземпляров XML, для которых неизвестны имена элементов или атрибутов, содержащих эти значения.Например, следующее выражение при наличии индекса VALUE выполняется более эффективно:
· //author[LastName="someName"], где известно значение элемента <LastName>, но родительский элемент <author> может находиться где угодно;
· /book[@* = "someValue"], где запрос выполняет поиск элемента <book> с каким-либо атрибутом, имеющим значение "someValue".
Следующий запрос возвращает столбец ContactID из таблицы Contact. Предложение WHERE задает фильтр, выполняющий поиск значений в столбцеAdditionalContactInfo типа xml. Идентификаторы контактов возвращаются только тогда, когда соответствующий большой двоичный объект XML, содержащий дополнительные контактные данные, включает в себя определенный номер телефона. Поскольку элемент <telephoneNumber> может находиться в любом месте XML-документа, выражение пути задает ось descendent-or-self.
WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo' AS CI, 'http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes' AS ACT) SELECT ContactID FROM Person.ContactWHERE AdditionalContactInfo.exist('//ACT:telephoneNumber/ACT:number[.="111-111-1111"]') = 1В этой ситуации искомое значение атрибута <number> известно, но оно может находиться в любом месте экземпляра XML как дочерний элемент элемента <telephoneNumber>. Производительность запроса такого рода может повыситься при поиске указанного значения по индексу.
Дата публикования: 2015-02-03; Прочитано: 168 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!