Update 4/11/2014
Es sieht so aus, als ob das Skript im Tool "Funktionen löschen" hängen geblieben ist, also habe ich zu "Tabelle abschneiden" gewechselt, wie in der folgenden Antwort vorgeschlagen. Ich habe auch die nicht verwendeten Variablen aus dem Append-Tool entfernt.
Update 10.04.2014
Ich habe dieses Skript auf dem Computer meines Kollegen ausgeführt (sein Computer hat mehr Speicher UND enthält ArcGIS 10.0 / Python26) und es wurde schnell ausgeführt. Hurra! Sobald mein technischer Support die ArcGIS 10.0-CD gefunden hat, werde ich sie installieren und testen, um festzustellen, ob dies die Geschwindigkeit auf meinem Computer verbessert. Um es klar auszudrücken, führen wir dasselbe Skript aus, unser Netzlaufwerk und unsere Datenbankverbindung sind identisch zugeordnet und die Druckanweisungen sind identisch. Ich werde hier ein Update veröffentlichen, sobald dies passiert.
Aktualisierungen beenden
Ich muss die Geschwindigkeit einiger Python-Skripte erhöhen, die Updates für eine Oracle-Datenbank ausführen. Ich hatte diese Python-Skripte über ein Jahr lang gut laufen lassen, über geplante Aufgaben und Batch-Dateien, um die Skripte zu initiieren. Letzte Woche bin ich von einem XP auf einen Windows 7-Computer und ArcGIS 10.0 -> 10.1 gewechselt. Seitdem sind die Skripte furchtbar langsam geworden. Wenn ich dieses Skript mit einer kleinen Feature-Class (mit ~ 20 Features) ausführe, wird es in 30 Sekunden ausgeführt. Wenn ich eine mittlere Feature-Class (~ 80.000 Datensätze) verwende, läuft sie in 15 Minuten. Die Feature-Class, die ich wirklich schnell übertragen muss, enthält ungefähr 1.000.000 Datensätze. Das Skript reicht nur bis zur print-Anweisung, um zu überprüfen, ob die Dateien vorhanden sind (if-Anweisung im Code unten). Dieser Vorgang würde auf meinem XP / ArcGIS 10.0-Computer nur 35 Minuten dauern.
Unten ist der vereinfachte Code, mit dem ich getestet habe. Hat jemand Vorschläge, was ich tun kann, um die Geschwindigkeit zu erhöhen? Danke, Patty
import arcpy, os, sys
from arcpy import env
arcpy.env.overwriteOutput = True
from datetime import datetime
import smtplib
import string
import urllib
#Define variables
inWorkspace = "O:/LANDING_PAD/BOE/example.gdb"
lpFeatures = inWorkspace + os.sep + "fc1"
outWorkspace = "Database Connections\\THIS.sde"
arcpy.env.workspace = outWorkspace
workspace = ""
copyFC = outWorkspace + os.sep + "SDE.fc1_1" #The feature class the script will update via delete and append
schema_type = "NO_TEST"
fieldMappings = ""
subtype = ""
t = datetime.now()
print "This script began at: " + str(t)
if arcpy.Exists(lpFeatures) is True and arcpy.Exists(copyFC) is True:
print "Both files exist. Beginning delete..."
arcpy.DeleteFeatures_management(copyFC) #(copyFC)
print "ALL DONE DELETING!"
arcpy.Append_management(lpFeatures, copyFC, schema_type, fieldMappings, subtype) #Append data from landing pad to db
print "ALL DONE APPENDING!"
record_count = arcpy.GetCount_management(lpFeatures)
print record_count
r = datetime.now()
print "This script ended at: " + str(r)
Delete_management()
und dann mit CopyFeatures_management()
oder neu erstellen können FeatureClassToFeatureClass_conversion()
?