XML-индекс

Xml-индекс может существенно увеличить скорость запросов, особенно на больших документах. XML-индекс не строится для отдельного набора узлов – индексируется весь документ, поэтому размер индекса во много раз превышает размер самого XML-документа. Сейчас пока невозможно точно сказать, насколько он замедляет операции DML, и насколько увеличивает производительность запросов, поэтому к построению индекса нужно подходить со здоровой долей скептицизма.

Синтаксис создания XML-индекса:

CREATE XML INDEX index_name ON [ { database_name. [ schema_name ]. | schema_name. } ] table_name (xml_column_name) [ WITH (<xml_index_option> [,...n ]) ]

Где:

  • index_name – имя индекса. Имя индекса должно быть уникальным среди имен индексов данной таблицы.
  • xml_column_name – имя колонки XML-типа.
  • xml_index_option – опции XML-индекса. Здесь можно указывать те же опции, что и для простого индекса за исключением IGNORE_DUP_KEY, REBUILD и ONLINE.

При создании XML-индекса должны учитываться следующие ограничения:

  • Индекс может быть построен только для таблиц с кластерным ключом.
  • На одну колонку XML-типа невозможно построить более одного XML-индекса. Однако вы можете совмещать, например, полнотекстовый индекс и XML-индекс.
  • Невозможно создать индекс на переменную или на поле представления XML-типа.
  • Нельзя изменять тип XML-поля (изменение схемы данных для данного поля), если имеется связанный с ним XML-индекс.
  • Пример построения индекса для поля fam таблицы fams следующий:
create xml index XMLIX_fam on dbo.fams

Удаление индекса выполняется обычной командой drop index, правда, синтаксис ее в Yukon немного изменен по сравнению с SQL Server 2000:

drop index XMLIX_fam on dbo.fams -- старый синтаксис - drop index dbo.fams.XMLIX_fam – не работает!

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: