Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 空间数据支持 » 空间数据

 

空间列的索引

与为任何其它数据类型创建索引时一样,创建空间索引时可使用 CREATE INDEX 语句或 [创建索引向导]。但是,对空间数据创建索引时,建议您不要在索引中包括多个空间列,并且应该将空间列放在索引定义的最后一行。

另外,要在索引中包括某个空间列,该列必须具有 SRID 约束。

对空间数据建立索引可降低评估几何之间关系的花销。例如,假设您正在考虑改变销售区域的边界并想要确定对现有客户的影响。要确定哪些客户在提议的销售区域内,可以使用 ST_Within 方法将表示每个客户地址的点与表示销售区域的多边形进行比较。没有建立索引时,数据库服务器必须对照销售区域多边形测试 Customer 表中的每个地址点,以确定是否应该在结果中返回该点。如果 Customer 表很大,则操作的花销可能非常大;如果销售区域很小,则效率又非常低。如果索引包括每个客户的地址点,则有助于快速返回结果。如果可以向查询添加谓语从而将销售区域与销售区域所覆盖的州相关联,则使用包括州代码和地址点的索引可以更快速地获得结果。

空间查询可能会 从聚簇索引中受益,但在决定使用聚簇索引之前,需要考虑表的其它应用。应该考虑和测试可能执行的查询类型,以确定使用聚簇索引时性能是否提高。

虽然可以对空间列创建文本索引,但文本索引并不比常规索引更具优势,因此改用常规索引。

注意

空间列不能包括在主键、唯一索引或唯一约束中。

 另请参见