http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcSDE >> 正文

采用ArcSde8.3建库过程中一些问题

作者:番茄西红…    文章来源:中国GIS资讯网    点击数:    更新时间:2006-7-3
摘要:

一、版本管理:

1、版本提交

    数据建库当中为了防止数据编辑产生冲突,一直采用多版本管理。前一次由于default版本作了修改并重新注册,导致以前由default版本产生的子版本都无法提交。Sde中每一个feature class都有对应的一张add表和delete表,分别用来保存增加(包括更新的)和删除的记录,考虑到我们实际建库中删除的记录不多,90%都是增加的记录。所以直接删除delete表中的数据,然后修改将default版本的state_id的值设为起始值0,这样就可以瞬间提交了。

2、数据库压缩(compress)和分析(analyse)操作

    每次版本提交后最好将子版本删除,然后进行压缩和分析操作。压缩过程中sde会删除掉无用的版本信息以及add和delete表中的记录。分析操作会重建空间表和属性表的索引,同时更新统计信息。

二、SDE8.3的LOGFILES

    在ArcMap中每次选择的记录超过100条记录时,ArcMap会将这些记录保存到SDE的logfiles中,而不是保存在本地机的内存当中。这两张表就是sde_logfiles和sde_logfile_data。

    因为是所有的sde客户端共用一张logfile表,每个客户端断开连接时,sde会将该用户对应的临时记录删除。但如果连接一直未断,就有可能产生上百万条的记录。ArcIMS中就经常产生这个问题,因为我们在建库过程中进行整体平移也会产生这样的巨大的数据。每次断开连接后,SDE后台都会耗费大量的时间来进行删除操作,影响正常的工作。

有两种比较临时的解决方法:

    1、  用SDE的sdelog-clean命令清空两张日志表

    2、  oracle dba 直接 drop掉两张表,arcmap等客户端下次连接时会重新生成两张表。

    但这毕竟是应急之作,从长远计,可以在oracle中建立一触发器,在sde服务器端无gsrvr进程时直接drop掉两张表,免得sde一个一个logfile_id的先查询在删除。

    在arcsde9中这个问题得以解决,它有三种logfile的模式供选择,其中一种就是用每一个gsrvr产生一个logfiles替代所有的用户公用一张logfile。

Tags:GIS,,ArcGIS,MapObjects  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图