海量空间数据库实施策略---矢量数据7

0
分享 2015-11-26
续:2. CHUNK大小,是BLOB分配大小的单位。
修改方法是修改dbtune中的
ST_GEOM_LOB_STORAGE " STORE AS ( ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION CACHE ) "选项。
表空间分离策略
ArcSDE在存储FeatureClass的时候,是将相关信息分别存储在了B表和S表中,其中B表是存储实际数据的,而S表是用来存储索引信息的,因此最好是将两个表分别存储到不同的介质上比较合理一些。
具体修改如下:
DBTUNE
•DB2

UI_TEXT “User Interface text for DEFALUTS"
B_RUNSTATS "YES"
B_STORAGE "in regtbs INDEX in idxtbs LONG IN lobtbs"


•Oracle:

UI_TEXT "User Interface text for DEFAULTS"
S_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE S_TBS"
GEOMETRY_STORAGE "ST_GEOMETRY“
B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE B_TBS“
B_INDEX_ROWID "PCTFREE 0 INITRANS 4 NOLOGGING INDEX_TBS“


接下来是索引策略:
索引对象只有一个功能,那就是加快数据的检索的速度,当然了建立索引并不是会加快所有操作的速度,如全图显示的时候,索引是不会加快处理的速度。只有你访问到的数据是总数据量的5%以下的时候才有可能会使用索引。
索引非为属性索引和空间索引
对于属性索引很多人已经非常熟悉了,在此不进行详细的介绍了,至于空间索引在http://zhihu.esrichina.com.cn/?/topic/SDE%E7%A9%BA%E9%97%B4%E7%B4%A2%E5%BC%95%E5%8E%9F%E7%90%86%E4%BB%8B%E7%BB%8D%E7%B3%BB%E5%88%97系列中有非常详细的介绍,在此就不啰嗦了。
下面主要讲一下空间索引的策略,也就是说如何评估我们所建立的空间索引是否合理,

对于网格索引:
针对于oracle数据库,arcsde提供了sdelayer –o si_stats来对已经建立好的索引信息进行统计,具体该命令的详细使用可以查看我的另外一篇博客:
http://zhihu.esrichina.com.cn/?/article/194
针对于DB2数据库,arcsde所提供的sdelayer –o si_stats就不支持了,但是db2 spatial extender 提供了另外一个比sdelayer命令更强大的工具,为gseidx,它不但可以统计已建立索引的信息,而且还可以在没建立网格索引的时候统计各种网格大小的统计值,具体gseidx的使用方法可以参考我的另外一篇博客:
http://zhihu.esrichina.com.cn/?/article/203

针对完后的统计信息,可以按照下面的标准来优化你的网格索引:
1. 网格的记录数除以地物的记录数要小于2。
2. 一个网格中所包括的地物的个数适当的低一些,在100-300个是最好的,一个网格中包括的地物的最大个数最好不要超过4000。
3. 每个地物尽量不要跨网格,如果有20%的地物横跨网格,网格大小需要调整。

属性索引:
在查询中对经常使用的属性字段创建索引,索引是指向表记录的指针,可以提高查询性能,减少全表扫描,因此可以提高数据库整体的性能,因此在设计阶段需要对每个索引进行严格的性能测试。

文章来源:http://blog.csdn.net/liufeng1980423/article/details/6273906

0 个评论

要回复文章请先登录注册