4
ประสิทธิภาพของ ArcGISScripting และชุดข้อมูลเชิงพื้นที่ขนาดใหญ่
ขณะนี้ฉันกำลังเขียนสคริปต์ไพ ธ อนโดยใช้โมดูล arcgisscripting เพื่อประมวลผลชุดข้อมูลที่มีขนาดใหญ่พอสมควร (รวม 10,000 เร็กคอร์ดโดยรวม) ทำให้เป็นมาตรฐานในตารางจำนวนเล็กน้อยทั้งหมด 8 รายการ กระบวนการนี้ประกอบด้วยการสร้างฟีเจอร์ตามพิกัดของ tuples (x, y) และการสร้างกราฟ (โหนดและเส้น) โดยใช้ความสัมพันธ์ในตารางอีก 7 ตารางเพื่อเป็นแนวทาง ผลลัพธ์สุดท้ายคือฐานข้อมูลส่วนบุคคลทางภูมิศาสตร์ (pgdb / fgdb) ที่มีโหนดและขอบชุดข้อมูลเชิงพื้นที่ที่แสดงภาพความสัมพันธ์ ความพยายามครั้งแรกของฉันคือการใช้คิวรีของตารางฐานข้อมูลใหม่และชุดระเบียน SearchCursor เพื่อเติมตารางลิงก์ (InsertCursor) สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่มที่เกิดขึ้นมากมาย สิ่งนี้ทำงานได้ดีมากยกเว้นเวลาประมวลผล 15-20 นาที การใช้โมดูล cProfiler ใน Python เป็นที่ชัดเจนว่า 'thrashing' เป็นฐานข้อมูลส่วนบุคคลเมื่อดำเนินการค้นหาเพื่อเติมตารางลิงก์พร้อมกับการร้องขอเคอร์เซอร์ (ค้นหาและแทรกเคอร์เซอร์) ทำให้เกิดประสิทธิภาพที่น่าตกใจ ด้วยการปรับเปลี่ยนเล็กน้อยฉันได้รับเวลาประมวลผลต่ำกว่า 2.5 นาที การแลกเปลี่ยนเป็นโครงสร้างบางส่วนของคีมาฐานข้อมูลในรหัสและการ จำกัด การร้องขอสำหรับเคอร์เซอร์ arcgisscripting เพื่อ …