DB2 Spatial Extender 性能调优(2)
2007-06-01 16:21:34 来源:WEB开发网核心提示: 清单 15. 使用空间索引的语法规则SELECT ...FROM <user_table>WHEREST_Intersects(<indexed_shape_column>, ...) = 1@SELECT ...FROM <user_table>WHE
清单 15. 使用空间索引的语法规则
SELECT ...
FROM <user_table>
WHERE ST_Intersects(<indexed_shape_column>, ...) = 1@
SELECT ...
FROM <user_table>
WHERE ST_Distance(..., <indexed_shape_column>) < <some_distance>@
如果所有条件都符合,同时也符合简单的语法规则,那么还不能保证可以使用空间网格索引来满足查询。DB2 优化器计算不同的访问计划,并试图找出总执行成本最低的计划。为检查在查询时是否真正使用了一个空间网格索引,应该查看一下访问计划。可以通过 db2expln 命令行工具,或者在 DB2 Control Center 中右键单击数据库并选择 Explain SQL 选项来收集访问计划。不管使用哪种方法,都可以生成和显示访问计划。图 3 描绘了我们在本文前面多次使用的查询的访问计划。如果计划包括对扩展索引的一个扫描,您将发现 EISCAN(在图 3 中高亮显示)。此外,您将在 EISCAN 下面发现网格索引的名称。
图 3. 带有网格索引扫描的空间查询访问计划
前面我们解释过,DB2 优化器不完全知道空间网格索引的细节。而且,优化器很难判断那样的索引扫描的成本和选择性。DB2 开发小组目前选择的解决方案使用户可以提供对空间谓词选择性的估计。为此,可以在 WHERE 子句中将关键字 SELECTIVITY 放在谓词的后面,后面带一个 0 到 1 之间的对选择性的估计值。这个值越低,优化器就越有可能选择扫描网格索引。清单 16 给出了一个查询例子,在这个查询中,向优化器提示空间谓词只有很少的符合条件的行。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接