Oracle的优化器在建立执行计划的时候如何计算st_spatial_index的成本
文章编号 : 32600
软件: ArcSDE 9.2,9.3,9.3.1
操作系统: N/A
软件: ArcSDE 9.2,9.3,9.3.1
操作系统: N/A
发起人
相关问题
- arcgis如何计算线的角度或者弧度。。线shp
- 在模型构建器中实现计算几何
- 请问在ArcGIS 10.1 Desktop中,用计算字段工具对地理坐标系(经纬度)数据计算面积,算出的面积是什么面积?这个面积是怎么计算出来的?
- 在一台计算机上安装ArcGIS Data Store的关系、切片缓存和时空类型
- server query查询数据量大怎么优化查询速度
- 计算“”一群“ ”“指定”两个点间的距离
- 地图服务优化策略
- 属性表没开开始编辑用计算字段器不小心改动了全部数据,无法返回上一步了,有恢复改动之前的办法吗?
- 如何计算县域下各村庄的坡度占比。
- cost -distance 计算时为什么太远的地方就不计算了?
- 缓冲区重合部分,如何融合为一个,并计算两个融合部分相同字段值的和,或者说他们两部分重合部分的叠加影响?
问题状态
- 最新活动: 2015-12-02 20:27
- 浏览: 2106
- 关注: 1 人
1 个回复
EsriSupport
赞同来自:
当Oracle的优化器解析一个包含空间操作符(如st_envintersects,st_intersects,st_contains,st_within,等等)的SQL语句时。优化器会调用ArcSDE的st_domain_stats类型来返回使用空间索引的CPU和I/O的成本代价。 当优化器调用函数来计算成本时,会使用预先估计出来的选择性,该选择性是在前一步利用st_domain_stats作为输入参数计算出来的。 St_domain_type类型查询sde.st_geometry_index表来获得空间索引的统计信息。 使用输入的选择性值和域索引的统计信息,可以利用下面的计算出CPU和I/O的消耗。 cpu cost = (dbms_odci.estimate_cpu_units(.00005) * 1000) *
((selectivity/100) * (number_rows - number_nulls))
io cost = index_blevel + CEIL(number_leaf_blocks * (selectivity/100)) +
CEIL(clustering_factor * (selectivity/100))
Number_rows的值为表所包含的记录数,number_nulls_equals等于表中的st_geometry属性值为NULL的记录数。Index_blevel是空间索引的深度,number_leaf_blocks等于空间索引叶节点所占有的块数, cluster_factor代表索引相对与表的聚蔟因子。
Oracle优化器利用st_domain_stats类型计算出来的代价来决定空间索引的代价比全表扫描的代价高还是低。
全表扫描的代价是所有操作的基准线。
更多的信息可以查看oracle官方文档中的dbms_odci包的相关信息。
原贴地址:http://resources.arcgis.com/co ... 32600
文章编号:
相关产品及版本: 平台:N/A
技术文章类型:FAQ
创建时间:2007年2月2日
最后修改时间:2007年11月10日
题目:
问题:Oracle的优化器在建立执行计划的时候如何计算st_spatial_index的成本
解答:
创建时间:2010-11-25
最近更新:2010-11-25
【原文链接】
http://support.esrichina.com.cn/2010/1125/848.html
要回复问题请先登录或注册