Создание, изменение и удаление пространственных индексов

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

Пространственный индекс позволяет более эффективно выполнять определенные операции со столбцами, содержащими данные типа geometry или geography ( пространственные столбцы). Для пространственного столбца может быть задано несколько пространственных индексов. Это целесообразно, например, при индексировании различных параметров тесселяции в одном столбце.

На создание пространственных индексов накладывается ряд ограничений. Дополнительные сведения см. в подразделе Ограничения пространственных индексов далее в этом разделе.

Заметка

Сведения о связи пространственных индексов с секционированием и файловыми группами см. в разделе "Примечания" в разделе CREATE SPATIAL INDEX (Transact-SQL).

Создание, изменение и удаление пространственных индексов

Создание пространственного индекса

Создание нового пространственного индекса с помощью Transact-SQL
CREATE SPATIAL INDEX (Transact-SQL)

Создание пространственного индекса с помощью диалогового окна «Создание индекса» в среде Management Studio

Создание пространственного индекса в среде Management Studio
  1. В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.

  2. Разверните узел Базы данных, разверните базу данных, содержащую таблицу с нужным индексом, а затем — узел Таблицы.

  3. Раскройте таблицу, для которой необходимо создать индекс.

  4. Щелкните правой кнопкой мыши Индексы и в контекстном меню выберите команду Создать индекс.

  5. В поле Имя индекса введите имя индекса.

  6. В раскрывающемся списке Тип индекса выберите Пространственный.

  7. Чтобы указать пространственный столбец, который необходимо проиндексировать, нажмите кнопку Добавить.

  8. В диалоговом окне "Выбор столбцов из<имени> таблицы" выберите столбец типа geometry или geography, установив соответствующий флажок. Остальные пространственные столбцы при этом станут недоступными для редактирования. Если необходимо выбрать другой пространственный столбец, то сначала нужно снять флажок со столбца, выбранного в данный момент. После завершения нажмите кнопку ОК.

  9. Проверьте выбор столбца в сетке Ключевые столбцы индекса .

  10. В области Выбор страницы диалогового окна Свойства индекса щелкните Пространственный.

  11. На странице Пространственный укажите значения, которые необходимо использовать для пространственных свойств индекса.

    При создании индекса для столбца типа geometry необходимо указать координаты (X-min,Y-min) и (X-max,Y-max) ограничивающего прямоугольника. При создании индекса для столбца типа geography после задания схемы тесселяции Географическая сетка поля ограничивающего прямоугольника становятся доступными только для чтения, так как в тесселяции географической сетки ограничивающий прямоугольник не используется.

    При необходимости можно указать нестандартные значения для поля Число ячеек на объект и для плотности сетки на любом уровне схемы тесселяции. Число ячеек по умолчанию для каждого объекта равно 16 для SQL Server 2008 (10.0.x) или 8 для SQL Server 2012 (11.x) или выше, а плотность сетки по умолчанию — средняя для SQL Server 2008 (10.0.x).

    Можно выбрать GEOMETRY_AUTO_GRID или GEOGRAPHY_AUTO_GRID для схемы тесселяции в SQL Server. При выборе GEOMETRY_AUTO_GRID или GEOGRAPHY_AUTO_GRID параметры плотности сетки «Уровень 1», «Уровень 2», «Уровень 3» и «Уровень 4» будут отключены.

    Дополнительные сведения об этих свойствах см. в разделе Справка F1 свойств индекса.

  12. Щелкните OK.

Заметка

Чтобы создать другой пространственный индекс на том же или другом пространственном столбце, повторите предыдущие шаги.

Создание пространственного индекса с помощью конструктора таблиц в среде Management Studio

Создание пространственного индекса в конструкторе таблиц
  1. В обозревателе объектов щелкните правой кнопкой мыши таблицу, для которой нужно создать пространственный индекс, и выберите пункт Конструктор.

    Таблица откроется в окне Конструктор таблиц.

  2. Выберите для индекса столбец geometry или geography .

  3. В меню Конструктор таблиц выберите пункт Пространственный индекс.

  4. В диалоговом окне Пространственные индексы нажмите кнопку Добавить.

  5. Выберите новый индекс в списке Выбранные пространственные индексы и в сетке справа задайте свойства пространственного индекса. Сведения о свойствах см. в диалоговом окне "Пространственные индексы" (визуальные инструменты для баз данных).

Изменение пространственного индекса

Удаление пространственного индекса

Удаление пространственного индекса с помощью Transact-SQL
DROP INDEX (Transact-SQL)

Удаление индекса с помощью среды Management Studio
Удаление индекса

Удаление пространственного индекса с помощью конструктора таблиц в среде Management Studio

Удаление пространственного индекса в конструкторе таблиц
  1. В обозревателе объектов щелкните правой кнопкой мыши таблицу с пространственным индексом, который необходимо удалить, и выберите пункт Конструктор.

    Таблица откроется в окне Конструктор таблиц.

  2. В меню Конструктор таблиц выберите пункт Пространственный индекс.

    Откроется диалоговое окно Пространственный индекс .

  3. Щелкните удаляемый индекс в столбце Выбранные пространственные индексы .

  4. Нажмите Удалить.

Ограничения пространственных индексов

Пространственный индекс можно создать только для столбца типа geometry или geography.

Ограничения таблиц и представлений

Пространственные индексы можно определить только для таблицы, у которой имеется первичный ключ. Максимально допустимое число столбцов первичного ключа составляет 15.

Размер записей ключа индекса не должен превышать 895 байт. Размеры, превышающие указанное значение, приводят к ошибке.

Заметка

Пока для таблицы определен пространственный индекс, изменить метаданные первичного ключа невозможно.

Пространственные индексы не могут быть заданы в индексированных представлениях.

Ограничения количества пространственных индексов

На любом из пространственных столбцов поддерживаемой таблицы можно создать до 249 пространственных индексов. Создание нескольких пространственных индексов на одном и том же пространственном столбце может оказаться целесообразным, например, для индексации различных параметров тесселяции в одном столбце.

Одновременно можно создать только один пространственный индекс.

Пространственные индексы и параллелизм процессов

Для построения индексов можно воспользоваться доступным параллелизмом процессов.

Ограничения версии

Пространственные тесселяции, представленные в SQL Server 2012 (11.x), нельзя реплицировать в SQL Server 2008 R2 (10.50.x) или SQL Server 2008 (10.0.x). Необходимо использовать пространственные индексы SQL Server 2008 R2 (10.50.x) или SQL Server 2008 (10.0.x) для пространственных индексов, если требуется обратная совместимость с SQL Server 2008 R2 (10.50.x) или SQL Server 2008 (10.0.x).

См. также

Общие сведения о пространственных индексах