Actualización 4/11/2014
Parece que el script se estaba bloqueando en la herramienta Eliminar características, por lo que cambié a Truncar tabla, como se sugiere en la respuesta a continuación. También eliminé las variables no utilizadas de la herramienta de agregar.
Actualización 4/10/2014
Ejecuté este script en la computadora de mi compañero de trabajo (su máquina tiene más memoria Y contiene ArcGIS 10.0 / Python26) y se ejecutó rápidamente. ¡Hurra! Una vez que mi soporte técnico encuentre el CD ArcGIS 10.0, lo instalaré y probaré para ver si eso mejora la velocidad de mi máquina. Para ser claros, estamos ejecutando el mismo script, nuestra unidad de red y la conexión de la base de datos se asignan de manera idéntica, y las declaraciones de impresión son las mismas. Publicaré una actualización aquí una vez que eso suceda.
Fin de actualizaciones
Necesito aumentar la velocidad de algunos scripts de Python que realizan actualizaciones en una base de datos Oracle. Tuve estos scripts de Python funcionando bien durante un año o más, a través de tareas programadas y archivos por lotes para iniciar los scripts. La semana pasada me mudé de un XP a una máquina con Windows 7 y ArcGIS 10.0 -> 10.1. Desde entonces, los guiones se han vuelto terriblemente lentos. Si ejecuto este script usando una pequeña clase de entidad (que contiene ~ 20 entidades) se ejecuta en 30 segundos. Si uso una clase de entidad media (~ 80,000 registros) se ejecuta en 15 minutos. La clase de entidad que realmente necesito para poder transferir rápidamente contiene aproximadamente 1,000,000 de registros: el script solo llega hasta la declaración de impresión para verificar si existen los archivos (si la declaración en el código a continuación). Este proceso tardaría solo 35 minutos en completarse en mi máquina XP / ArcGIS 10.0.
A continuación se muestra el código simplificado con el que he estado probando. ¿Alguien tiene sugerencias sobre lo que puedo hacer para aumentar la velocidad? Gracias 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()
y luego volver a crearla con CopyFeatures_management()
o FeatureClassToFeatureClass_conversion()
?