sde自动重建索引(包括属性索引和空间索引)

0
分享 2019-12-30
由于部分情况修改sde数据索引不会更新(例如用sql修改),因此有必要定时重建索引,此方法重建包括属性索引和空间索引

使用py实现,以下提供模板:
# coding:utf-8
# encoding=utf-8
# Import arcpy module
import arcpy

# 默认工作空间必须设,否则会报错ERROR 000732 不存在或不受支持
arcpy.env.workspace = r"C:\\"

# sde配置文件名,注意一次可以处理多个图层,但图层要在同一个sde库
sde_file = r"数据库连接\Connection localhost-mctw_bak.sde"

# 要处理的图层路径,格式是相对路径,相对路径的根路径是sde数据库,以下两条是例子
list_fc =
list_fc.append(r"mctw_bak.sde.pipe\mctw_bak.sde.PS_CANAL_ZY")
list_fc.append(r"mctw_bak.sde.pipe\mctw_bak.sde.PS_ALTER_DIA_ZY")

# 把多个图层拼接成一个字符串,多个用分号隔开
str_all_fc = ""
for fc in list_fc:
if str_all_fc.strip() != "":
str_all_fc += ";"

str_all_fc += fc

# 执行重建索引(包括属性索引和空间索引)
# 参数1:要处理的sde库
# 参数2:是否处理系统表
# 参数3:要处理的图层,多个用逗号隔开
# 参数4:是否只处理增量表(对增量表的定义我看了官方文档也不清楚,所以建议全量表)
arcpy.RebuildIndexes_management(sde_file, False, str_all_fc, False)

print '处理完成'


然后按上面的注释修改成具体内容
 
py文件编辑后的运行方式,看另一篇文章(http://zhihu.esrichina.com.cn/article/3990)对应内容即可,本文不再说明

0 个评论

要回复文章请先登录注册