Cập nhật ngày 4/11/2014
Có vẻ như tập lệnh đã bị treo lên trên công cụ Xóa Tính năng, vì vậy tôi đã chuyển sang Bảng cắt bớt, như được đề xuất trong câu trả lời dưới đây. Tôi cũng loại bỏ các biến không sử dụng khỏi công cụ chắp thêm.
Cập nhật ngày 4/10/2014
Tôi đã chạy tập lệnh này trên máy tính của đồng nghiệp (máy của anh ta có nhiều bộ nhớ hơn và chứa ArcGIS 10.0 / Python26) và nó chạy rất nhanh. Hoan hô! Khi bộ phận hỗ trợ kỹ thuật của tôi tìm thấy CD ArcGIS 10.0, tôi sẽ cài đặt và kiểm tra xem điều đó có cải thiện tốc độ trên máy của tôi không. Để rõ ràng, chúng tôi đang chạy cùng một tập lệnh, ổ đĩa mạng và kết nối cơ sở dữ liệu của chúng tôi được ánh xạ giống hệt nhau và các câu lệnh in giống nhau. Tôi sẽ đăng một bản cập nhật ở đây một khi điều đó xảy ra.
Kết thúc cập nhật
Tôi cần tăng tốc độ của một số tập lệnh Python thực hiện cập nhật trên cơ sở dữ liệu Oracle. Tôi đã có các tập lệnh Python này chạy tốt trong một năm +, thông qua các tác vụ theo lịch trình và các tệp bó để khởi tạo các tập lệnh. Tuần trước tôi đã chuyển từ XP sang máy Windows 7 và ArcGIS 10.0 -> 10.1. Kể từ đó các kịch bản đã trở nên chậm khủng khiếp. Nếu tôi chạy tập lệnh này bằng một lớp tính năng nhỏ (chứa ~ 20 tính năng) thì nó sẽ chạy trong 30 giây. Nếu tôi sử dụng một lớp tính năng trung bình (~ 80.000 bản ghi) thì nó sẽ chạy trong 15 phút. Lớp tính năng tôi thực sự cần để có thể chuyển nhanh chóng chứa khoảng 1.000.000 bản ghi - tập lệnh chỉ đi xa đến câu lệnh in để kiểm tra xem các tệp có tồn tại không (nếu câu lệnh trong mã bên dưới). Quá trình này sẽ chỉ mất 35 phút để hoàn thành trên máy XP / ArcGIS 10.0 của tôi.
Dưới đây là mã đơn giản hóa mà tôi đã thử nghiệm. Có ai có đề xuất về những gì tôi có thể làm để tăng tốc độ không? Cảm ơn, 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()
và sau đó tạo lại nó bằng CopyFeatures_management()
hoặc FeatureClassToFeatureClass_conversion()
không?