ArcSDE性能优化系列之数据编辑

其实有好多用户有这个困扰,再进行大量ArcGIS数据编辑后,数据的查询、分析、编辑效率会越来越慢,其实了解ArcSDE版本的用户应该知道这是怎么回事,这里就不再反复的去说明了。

详细参考版本介绍:http://wenku.baidu.com/view/7ad2ec7d27284b73f24250fe.html

也就是说,假如用户使用版本编辑了,那么版本压缩的工作肯定不能缺少的,编辑比较频繁的可能需要一天一压缩,而且只有这一种方法才行,其他都是浮云。

那么今天的文档主要是给大家说明一下在编辑过程中的一些误区,一些注意事项,供大家参考。

数据导入

看到这个题目数据导入可能有人纳闷,数据编辑跟数据导入有什么关系呢?主要是给大家说明一个误区,有一种情况是已经创建了数据的Schema或者说往已有数据图层导入新数据也就是使用Load的功能,那么有些用户可能会先注册版本再Load数据,这样熟悉版本的用户就知道我们大量的数据就会在A表中进行存储,状态表中因为无形的增加了N多数据,那么在我们查询时的效率无疑的降低。

所以如果是大量数据导入时,建议先将数据反注册版本(之前工作做好),然后再Load,然后再注册版本编辑。(不过还是根据情况来定,如果你的加载的这些数据必须要走版本也没有办法),这里只是给大家提醒一下这一点。

编辑的选择

其实大家可以根据自己的业务要求和编辑要求来选择编辑方式,并不是所有的情况都要使用版本编辑,如果只有一个用户,或者编辑要求不是那么精细,完全可以走非版本编辑。

如下图所示,勾掉即可。

 

编辑操作

以下哪种对版本操作的性能影响最大?

Ø State_lineages表的Size

Ø Delta表的Size

Ø 版本数量

Ø 一个版本的编辑数量

答案是:一个版本的编辑数量(Lineages),因为在进行版本显示过程中,在Versions表中有针对某个版本对应的编辑状态,但是耗费性能对大的是针对某一个版本状态,沿着这个状态把他们一系列的Lineages分析清楚,也就是将这个版本下所有的编辑操作全部理清楚,这个是最耗资源的。

clip_image004[1]

所以说在编辑完毕后,我们要及时对子版本进行协调提交,然后进行压缩操作。

clip_image006[1]

clip_image008[1]

以上是针对同一数据压缩和不压缩的数据分析。

我们看到进行过数据压缩进行联表查询的数值为3127,那么没有经过压缩的进行联表查询数值为111947,后者是前者的近36倍,可见差距。

数据压缩

要维护数据库性能,ArcSDE 管理员必须定期运行压缩命令来移除未使用的数据。只有 ArcSDE 管理员(sde 或 dbo 用户)才能执行压缩操作。压缩过程执行两个关键任务:

Ø 它会移除未引用的状态及其关联增量表行。

Ø 它会将所有版本共用的增量表条目移至基表中,这可以减少每次查询版本时数据库所需要搜素的数据量,从而提高查询性能并减少系统响应时间。

当大量的未压缩更改逐渐累积在一起时,压缩数据库可能需要几个小时的时间。为了避免这一情况的发生,请定期执行压缩操作。比较理想的做法是在每天工作结束时或在高强度的数据库活动(例如数据加载)后执行压缩操作。

压缩过程中,用户可以保持与地理数据库的连接。如果某个用户正在编辑一个版本,则该状态的分支将被锁定并且不会参与压缩过程。因此,最好在开始压缩前断开所有用户与地理数据库的连接,以确保可以压缩整个状态树。不必断开类型为只读的会话(例如 ArcIMS 会话)。

如果在等待压缩操作完成的过程中需要计算机去执行其他任务,您可以随时结束压缩操作。这不会导致数据库处于不一致状态。可以在以后继续压缩。

数据统计分析

在压缩前和压缩后更新地理数据库中每个版本化要素类和表的统计数据是很重要的。执行编辑并压缩数据库之后,数据库统计数据将不再准确。这会对查询性能造成不利影响。

当更新要素数据集中的统计数据时,该要素数据集中所有要素类的统计数据也将得到更新。如果要素数据集中包含几何网络,则还将更新网络表。

更新统计数据的时机:在压缩操作之前和之后,在添加或移除拓扑规则之后,在将数据导入、加载或复制到 ArcSDE 地理数据库中之后。

运行“分析”命令时,可以选择需要更新统计数据的表。列出的所有表都与正在分析的数据集相关联。例如,业务表是数据集中包含所有属性信息的基表。对于大多数空间存储类型,业务表还包含空间信息。

如果在 Oracle 或 SQL Server 中的地理数据库中使用二进制几何存储机制,则空间信息将存储在要素表中。如果所分析的要素类使用的是二进制几何存储机制,则可以选择更新要素表。如果使用的是其他类型的几何存储机制,则该选项对您不适用并将处于非活动状态。

只有在更新栅格目录或栅格数据集中的统计数据时,栅格表选项才可用。

添加表和删除表仅存在于版本化的数据集中。只有在分析版本化的数据集时,用于更新这些表中的统计数据的选项才处于活动状态。

如果版本化的数据集还启用了存档,则也可以更新历史存档表中的统计数据。

但是在Oracle数据库来说是需要特别注意一下,因为进行数据分析是相当于对全表扫描进行更新统计数据信息,Oracle有一个机制是记录最近一次的扫描状态,而且Oracle在10G之后默认打开计划任务,也就是不知道什么时候(该时间我也不太清楚,有兴趣查看Oracle帮助)Oracle就会自动进行计划任务进行全表扫描,这无疑就降低了效率,所以说,对Oracle数据库来说可以将执行定期任务计划功能关闭掉。

clip_image010[1]

数据编辑情况

这个与前面的索引有点类似,就是如果用户的数据编辑的比较大(与原来的要素大小相差比较巨大),那么就需要重建索引,重新计算格网大小了,这里点到就是了。

其他

用户还可以借助于GDBT工具,GDBT是集成在ArcCatalog软件上,为多用户的GDB操作提供监听、查看、报告信息。

相关参考:http://blog.csdn.net/linghe301/archive/2011/02/10/6176418.aspx

对一些用户自己的小数据量的测试数据,如果使用ArcMap编辑感觉速度很慢,建议用户先将数据导出来,然后再导进去,可能会有意想不到的效果。

说明

该文档为作者在学习ArcGIS的一些笔记(自己学习、ArcGIS帮助、网络资源、高手请教相结合),难免有一些表达不全面或者理解有出入的,还请各位多多指教!

广告博客

http://www.gisall.com/index.php?uid-121719 :欢迎访问GIS博客

http://blog.csdn.net/linghe301:欢迎访问GIS博客

或者在百度文科上搜索:linghe301

By Lish

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值