Memverifikasi bahwa indeks atribut sedang digunakan dalam permintaan dari ArcObjects?

11

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 PLANdi Oracle.

Kueri ada di file geodatabase menggunakan ArcObjects secara langsung (tidak ada backend RDBMS atau SQL).

Agas
sumber
Sudahkah Anda menghitung waktu kinerja dengan dan tanpa indeks atribut? Saya pikir itu satu-satunya cara untuk mengetahui bahwa mereka memiliki efek.
blah238
Saya menjalankan tes kinerja sekarang dengan berbagai ukuran dataset. Saya akan mencoba memposting hasil ketika saya mendapatkannya.
Nyamuk
Saya mencari di perpustakaan kelas ArcObjects untuk sesuatu yang mirip dengan is_size_fast?metode Smallworld Magik , yang mengembalikan true jika indeks sedang digunakan, tapi saya tidak bisa melihat panggilan ArcObjects yang setara.
Nyamuk
fGDB adalah format basis data ESRI sendiri, ada API yang akan memungkinkan Anda untuk mengakses data tanpa objek ESRI tetapi saya ragu itu akan menjelaskan banyak pertanyaan Anda. Penggunaan indeks bersifat otomatis dan tidak dapat dideteksi atau ditegaskan. Saya setuju dengan blah238 itu satu-satunya cara untuk memastikannya. Opsi 'unik' dan 'naik' dapat memiliki perbedaan besar tetapi hanya menggunakan opsi ini jika Anda benar-benar yakin akan keunikan dan / atau kenaikan.
Michael Stimson
@ blah238 Saya pikir Anda bisa mengubah komentar Anda menjadi jawaban.
PolyGeo

Jawaban:

1

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.

Michael Stimson
sumber