Jelas menjaga beberapa indeks berbeda memiliki dampak negatif pada menyisipkan dan menghapus kinerja. Bagaimana dengan kinerja kueri: Apakah masuk akal sama sekali menyimpan terlalu banyak indeks di atas meja? Apakah kinerja kueri akan meningkat dalam hal apa pun dengan indeks yang ditambahkan (tentu saja untuk kueri yang menggunakan indeks sama sekali) atau apakah bahkan mungkin kinerja kueri akan menurun dengan terlalu banyak indeks karena itu perlu untuk berkonsultasi dengan semua indeks untuk mendapatkan indeks hasil?
Jika ada indeks yang berbeda pada tabel: apakah semuanya akan dipertimbangkan, atau hanya yang terbaik dari sudut pandang pengoptimal? Apakah Oracle menerapkan indeks multi-dimensi?
oracle
performance
index
paweloque
sumber
sumber
Jawaban:
Akan memakan waktu lebih lama untuk menghasilkan rencana ketika ada lebih banyak indeks untuk dipertimbangkan, tetapi saya ragu perbedaannya akan signifikan secara terukur. The alasan untuk menjatuhkan indeks tidak mencantumkan kinerja query. Di sisi lain, secara umum Anda tidak boleh membuat indeks kecuali Anda tahu mereka akan digunakan untuk membuat kueri lebih efisien.
Dari Oracle Concepts Guide , berikut adalah kriteria untuk membuat indeks.
Semua indeks akan dipertimbangkan dalam arti bahwa semua indeks pada tabel dalam kueri diperiksa untuk menentukan apakah mereka dapat digunakan. Mereka yang bisa diperiksa lebih lanjut untuk menentukan kegunaan.
sumber
Selama statistik Anda mutakhir, pengoptimal berbasis biaya harus membuat keputusan yang masuk akal mengenai indeks mana yang akan digunakan. Jika tidak, itu saatnya menggunakan petunjuk . Itu tidak akan pernah berkonsultasi indeks pada kolom yang tidak perlu untuk memenuhi permintaan.
sumber
Saya menemukan ini di Memilih Strategi Indeks dari Panduan Pengembang Aplikasi ini . Halaman itu adalah tentang 'memilih strategi indeks':
sumber