Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Вторичный индекс VALUE типа данных XML



Если запрос основан на значении, например: /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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.143 с)...