15.10 - Geospatial Indexes - Teradata Database

Teradata Database SQL Geospatial Types

Teradata Database
Programming Reference

Teradata Database supports creation of nonunique secondary indexes (NUSIs) on geospatial data columns. These indexes are implemented internally using a Hilbert R-tree structure. Geospatial indexes can greatly improve the performance of geospatial queries that contain single-table predicates or join predicates using the following geospatial methods:

  • MBB_Filter
  • MBR_Filter
  • ST_3DDistance
  • ST_Contains
  • ST_Crosses
  • ST_Distance
  • ST_Equals
  • ST_Intersects
  • ST_Overlaps
  • ST_Touches
  • ST_Within
  • Within_MBB
  • Intersects_MBB
  • ST_Relate (if this predicate is configured to execute one of the above methods)
  • For more information on how geospatial indexes and predicates can speed geospatial queries, see “Geospatial Predicates and the Optimizer” on page 99.

    The syntax used to create indexes on geospatial data columns is the same as the syntax used with CREATE INDEX and CREATE TABLE to create any NUSI with the following restrictions:

  • Geospatial NUSIs must be single-column indexes.
  • Geospatial NUSIs cannot be created on geospatial columns used in join indexes.
  • The ALL keyword is not supported for geospatial indexes.
  • The ORDER BY VALUES and ORDER BY HASH clauses are not supported for geospatial indexes.
  • Geospatial indexes cannot be created on global temporary or volatile tables. Consequently, the TEMPORARY keyword is not supported for geospatial indexes.
  • Geospatial indexes can be created for 3D data, however the z coordinate is ignored. The MBR of the geometry, which is based only on the x and y coordinates, is used to create the index.
  • Because geospatial indexing is based on x and y coordinates, performance can be adversely affected by indexing if 3D geospatial objects being indexed are stacked in the z axis, with very little distribution in the x and y axes.
  • For more information about indexes, see SQL Data Definition Language and Database Design. For more information on the Hilbert R-tree structure, see SQL Request and Transaction Processing.