Kami memiliki beberapa perangkat lunak sebagai bagian dari proyek yang lebih besar yang ditulis menggunakan ArcObjects via .NET. Perangkat lunak ini memigrasikan dan menggabungkan data dari banyak file geodatabase dalam satu skema ke satu file geodatabase dalam skema yang serupa tetapi berbeda. Beberapa langkah dalam migrasi melibatkan mencari baris yang ada dan memperbaruinya dengan data dari tabel yang berbeda. Ini bisa menjadi sangat lambat ketika geodatabase tujuan besar, jadi saya telah menambahkan beberapa indeks atribut multi-bidang untuk meningkatkan kinerja permintaan / pembaruan.
Apakah ada cara saya dapat mengonfirmasi bahwa kueri menggunakan indeks atribut baru, dan mungkin bagaimana kueri dijalankan?
Saya kira saya benar-benar mencari yang setara dengan rencana permintaan - sesuatu yang mirip dengan EXPLAIN PLAN
di Oracle.
Kueri ada di file geodatabase menggunakan ArcObjects secara langsung (tidak ada backend RDBMS atau SQL).
is_size_fast?
metode Smallworld Magik , yang mengembalikan true jika indeks sedang digunakan, tapi saya tidak bisa melihat panggilan ArcObjects yang setara.Jawaban:
File Geodatabase adalah format basis data Esri sendiri, ada API yang akan memungkinkan Anda untuk mengakses data tanpa ArcObjects tapi saya ragu itu akan menjelaskan banyak masalah Anda.
Penggunaan indeks bersifat otomatis, pada tingkat basis data, dan tidak dapat dideteksi atau ditegaskan kecuali untuk ketepatan waktu fungsi yang menggunakannya.
Saya setuju dengan blah238 satu-satunya cara untuk memastikan adalah dengan menjalankan dan tanpa indeks dibangun dan membandingkan perbedaan waktu.
Opsi 'unik' dan 'naik' untuk membangun indeks dapat memiliki perbedaan besar tetapi hanya gunakan opsi ini jika Anda benar-benar yakin akan keunikan dan / atau kenaikan, jika data tidak cocok, indeks tidak akan membangun atau, jika itu memang membangun, cenderung mempengaruhi kinerja daripada meningkatkan.
sumber