WEB开发网
开发学院数据库DB2 DB2 Spatial Extender 性能调优(2) 阅读

DB2 Spatial Extender 性能调优(2)

 2007-06-01 16:21:34 来源:WEB开发网   
核心提示: 使用空间网格索引至此,我们讨论了很多提高空间操作性能的不同方面,DB2 Spatial Extender 性能调优(2)(5),现在我们将讨论最显著的一个方面,也就是对空间索引的使用,一个例外是 ST_Distance 函数,它必须出现在针对一个任意距离的小于比较式中,这里我们解释您应该做

使用空间网格索引

至此,我们讨论了很多提高空间操作性能的不同方面。现在我们将讨论最显著的一个方面,也就是对空间索引的使用。这里我们解释您应该做些什么,以便让 DB2 优化器选择使用一个空间索引。索引本身的调优在 下一节 中解释。

空间索引是建立在 DB2 可扩展索引框架(请参阅 参考资料 一节,找到关于 Index Extensions 的那篇文章)之上的一种扩展的索引。由于空间数据的多维特性,DB2 通常使用的 B* 树并不是很合适,因此 DB2 Spatial Extender 提供了专门的索引机制。DB2 索引扩展由三个部分组成:

用于在 INSERT 和 UPDATE 操作中构造索引键的键生成器函数。

用于定义在查询执行期间空间索引的搜索范围的范围生成器函数。

告诉 DB2 优化器在哪些条件下可以使用空间索引的空间谓词。

DB2 Spatial Extender 已经定义了所有这些部分。除了真正创建一个空间索引外,您还必须熟悉最后一个部分。空间谓词是与比较两个几何图形的函数(即 ST_Contains、ST_Within、ST_Intersects、ST_Crosses、ST_Overlaps、ST_Touches、ST_EnvIntersects、ST_MBRIntersects、ST_Equals 和 ST_Distance)相关的谓词。其他任何空间函数都不能使用网格索引。而且,只有当上述函数中的一个函数出现在查询的 WHERE 子句中,并且该函数至少有一个参数标识出定义了网格索引的列的时候,才能使用空间网格索引。这听起来好像有一大堆的条件,但还是比较简单的:通过使用列可以找到索引,通过使用函数可以知道空间谓词。

此外,DB2 要求遵从基本的语法规则,以检测潜在的对空间谓词的使用。函数调用必须发生在针对值 1 进行的相等比较式的左边。一个例外是 ST_Distance 函数,它必须出现在针对一个任意距离的小于比较式中。清单 15 给出了这两种正确的规范形式。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB Spatial Extender

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接