Чтобы предоставить приложениям возможность выполнять запросы географических данных, которые содержит пространственный столбец, IBM Db2 Spatial Extender предлагает пространственный индекс с трехуровневой сеткой.
Двухмерный пространственный индекс отличается от обычного иерархического индекса B-дерева, предоставляемого Db2. Индекс B-дерева, возможно, не будет применяться к пространственному столбцу, так как для двухмерных свойств этого столбца требуется структура пространственного индекса. По той же причине пространственный индекс может не действовать в отношении непространственного столбца и не применяться к составному столбцу любого вида.
Поэтому синтаксис CREATE INDEX пространственного индекса включает в себя дополнительный оператор USING, который направляет Db2 для использования пространственного индекса Spatial Extender вместо индекса B-дерева. Полностью синтаксис выглядит так:
CREATE INDEX <index_name>
ON <table> (<spatial column>)
USING db2gse.spatial_index (<grid level 1>, [grid level 2], [grid level 3])
Добавление оператора USING отличает пространственный индекс от индекса B-дерева. Имя схемы db2gse должно соответствовать имени расширения spatial_index, так как эта инструкция не подчиняется текущему пути функции.
Вследствие простой сущности данных, которые призвано индексировать B-дерево, разработчику базы данных требуется направить Db2 для создания индекса в одном или нескольких столбцах таблицы. Но поскольку пространственные данные являются составными объектами, разработчику требуется понимать распределение их относительных размеров. Он должен определить оптимальный размер и число уровней иерархии пространственного индекса.
Уровни иерархии ([grid level 1], [grid level 2], [grid level 3]) вводятся по возрастанию размера ячейки. Следовательно, на втором уровне размер ячейки должен быть больше, чем на первом, а на третьем уровне больше, чем на втором. Первый уровень иерархии обязателен, однако можно отключить второй и третий уровни, установив нулевое значение (0).
Для более полной информации о пространственных индексах, см. документацию по Db2 в IBM Knowledge Center.