import arcpy
import sys
print"Start a Compress Session (Mode: Normally)"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)print"Compress Versions..."
arcpy.Compress_management(sde_workspace)
arcpy.FeatureClassToFeatureClass_conversion()print"End a Compress Session (Mode: Normally)"
自动压缩
import arcpy
import sys
print"Start a Compress Session (Mode: Automatically)"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
conflict_definition ="BY_OBJECT"if sys.argv[2]=="0"else"BY_ATTRIBUTE"print"Conflict Definition: {0}".format(conflict_definition)
conflict_resolution ="FAVOR_TARGET_VERSION"if sys.argv[3]=="0"else"FAVOR_EDIT_VERSION"print"Conflict Resolution: {0}".format(conflict_resolution)print"Prevent any Other Users to Connect "
arcpy.AcceptConnections(sde_workspace,False)print"Disconnect Any Other Connections exclude SDE user"
arcpy.DisconnectUser(sde_workspace,"ALL")print"Get Child Version List "
versionList = arcpy.ListVersions(sde_workspace)print"Post Data from Children Versions to DEFAULT Version "
arcpy.ReconcileVersions_management(sde_workspace,"ALL_VERSIONS","sde.DEFAULT", versionList,"NO_LOCK_ACQUIRED","NO_ABORT", conflict_definition, conflict_resolution,"POST","KEEP_VERSION",None)print"Compress Versions "
arcpy.Compress_management(sde_workspace)print"Accept Connections "
arcpy.AcceptConnections(sde_workspace,True)print"Get Administrative User Name "
userName = arcpy.Describe(workspace).connectionProperties.user
print"Get Data Object List "
dataList = arcpy.ListTables('*.'+ userName +'.*')+ arcpy.ListFeatureClasses('*.'+ userName +'.*')+ arcpy.ListRasters('*.'+ userName +'.*')print"Get Data Objects in DataSet"for data_set in arcpy.ListDatasets('*.'+ userName +'.*'):
dataList += arcpy.ListFeatureClasses(feature_dataset=data_set)print"Rebuild Spatial Indexes "
arcpy.RebuildIndexes_management(workspace,"SYSTEM", dataList,"ALL")print"Analyze DataSet "
arcpy.AnalyzeDatasets_management(workspace,"SYSTEM", dataList,"ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")print"End a Compress Session (Mode: Automatically)"
彻底压缩
import arcpy
import sys
print"Start a Compress Session (Mode: Completely)"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
conflict_definition ="BY_OBJECT"if sys.argv[2]=="0"else"BY_ATTRIBUTE"print"Conflict Definition: {0}".format(conflict_definition)
conflict_resolution ="FAVOR_TARGET_VERSION"if sys.argv[3]=="0"else"FAVOR_EDIT_VERSION"print"Conflict Resolution: {0}".format(conflict_resolution)print"Prevent any Other Users to Connect "
arcpy.AcceptConnections(sde_workspace,False)print"Disconnect Any Other Connections exclude SDE user's "
arcpy.DisconnectUser(sde_workspace,"ALL")print"Get Child Version List"
versionList = arcpy.ListVersions(sde_workspace)print"Post Data from Children Versions to DEFAULT Version"
arcpy.ReconcileVersions_management(sde_workspace,"ALL_VERSIONS","sde.DEFAULT", versionList,"LOCK_ACQUIRED","NO_ABORT","BY_OBJECT","FAVOR_TARGET_VERSION","POST","DELETE_VERSION",None)print"Delete Children Versions "for version in versionList:if version != r"SDE.DEFAULT":
arcpy.DeleteVersion_management(sde_workspace, version)print"Compress Versions "
arcpy.Compress_management(sde_workspace)print"Accept Connections "
arcpy.AcceptConnections(sde_workspace,True)print"Get Administrative User Name "
userName = arcpy.Describe(workspace).connectionProperties.user
print"Get Data Object List "
dataList = arcpy.ListTables('*.'+ userName +'.*')+ arcpy.ListFeatureClasses('*.'+ userName +'.*')+ arcpy.ListRasters('*.'+ userName +'.*')print"Get Data Objects in DataSet"for data_set in arcpy.ListDatasets('*.'+ userName +'.*'):
dataList += arcpy.ListFeatureClasses(feature_dataset=data_set)print"Rebuild Spatial Indexes "
arcpy.RebuildIndexes_management(workspace,"SYSTEM", dataList,"ALL")print"Analyze DataSet "
arcpy.AnalyzeDatasets_management(workspace,"SYSTEM", dataList,"ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")print"End a Compress Session (Mode: Completely)"
ArcPy实现的其他功能
协调版本
import arcpy
import sys
print"Start a Reconciling Session"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
conflict_definition ="BY_OBJECT"if sys.argv[2]=="0"else"BY_ATTRIBUTE"print"Conflict Definition: {0}".format(conflict_definition)
conflict_resolution ="FAVOR_TARGET_VERSION"if sys.argv[3]=="0"else"FAVOR_EDIT_VERSION"print"Conflict Resolution: {0}".format(conflict_resolution)print"Get Child Version List "
versionList = arcpy.ListVersions(sde_workspace)print"Post Data from Children Versions to DEFAULT Version "
arcpy.ReconcileVersions_management(sde_workspace,"ALL_VERSIONS","sde.DEFAULT", versionList,"NO_LOCK_ACQUIRED","NO_ABORT", conflict_definition, conflict_resolution,"POST","KEEP_VERSION",None)print"End a Reconciling Session"
删除所有子版本
import arcpy
import sys
print"Start a Deleting Session"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
print"Get Child Version List "
versionList = arcpy.ListVersions(sde_workspace)for version in versionList:if version != r"SDE.DEFAULT":print"Delete Version: {0}".format(version)
arcpy.DeleteVersion_management(sde_workspace, version)print"End a Deleting Session"
重建空间索引
import arcpy
import sys
print"Start a Rebuilding Indexes Session"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
print"Get Administrative User Name "
userName = arcpy.Describe(workspace).connectionProperties.user
print"Get Data Object List "
dataList = arcpy.ListTables('*.'+ userName +'.*')+ arcpy.ListFeatureClasses('*.'+ userName +'.*')+ arcpy.ListRasters('*.'+ userName +'.*')print"Get Data Objects in DataSet"for data_set in arcpy.ListDatasets('*.'+ userName +'.*'):
dataList += arcpy.ListFeatureClasses(feature_dataset=data_set)print"Rebuild Spatial Indexes "
arcpy.RebuildIndexes_management(workspace,"SYSTEM", dataList,"ALL")print"End a Rebuilding Indexes Session"
分析数据集
import arcpy
import sys
print"Start a Analyzing Datasets Session"print"Get Connection Information from Parameter..."
sde_workspace = sys.argv[1]print"SDE Workspace: {0}".format(sde_workspace)
arcpy.env.workspace = sde_workspace
workspace = arcpy.env.workspace
print"Get Administrative User Name "
userName = arcpy.Describe(workspace).connectionProperties.user
print"Get Data Object List "
dataList = arcpy.ListTables('*.'+ userName +'.*')+ arcpy.ListFeatureClasses('*.'+ userName +'.*')+ arcpy.ListRasters('*.'+ userName +'.*')print"Get Data Objects in DataSet"for data_set in arcpy.ListDatasets('*.'+ userName +'.*'):
dataList += arcpy.ListFeatureClasses(feature_dataset=data_set)print"Analyze DataSet "
arcpy.AnalyzeDatasets_management(workspace,"SYSTEM", dataList,"ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")print"End a Analyzing Datasets Session"