Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mengetahui indeks yang baik?

Ini tergantung pada apa yang Anda maksud dengan 'baik' dan 'buruk'. Pada dasarnya Anda perlu menyadari bahwa setiap indeks yang Anda tambahkan akan meningkatkan kinerja pada pencarian apa pun dengan kolom itu (jadi menambahkan indeks ke kolom 'nama belakang' dari tabel orang akan meningkatkan kinerja pada kueri yang memiliki "where lastname =" di dalamnya) tetapi menurunkan kinerja penulisan di seluruh tabel.

Alasan untuk ini adalah ketika Anda menambahkan atau memperbarui baris, itu harus menambah atau memperbarui tabel itu sendiri dan setiap indeks yang menjadi anggota baris tersebut. Jadi, jika Anda memiliki lima indeks di atas meja, setiap penambahan harus menulis ke enam tempat - lima indeks dan tabel - dan pembaruan mungkin menyentuh hingga enam tempat dalam kasus terburuk.

Pembuatan indeks adalah tindakan penyeimbangan antara kecepatan kueri dan kecepatan tulis. Dalam beberapa kasus, seperti datamart yang hanya dimuat dengan data seminggu sekali dalam pekerjaan semalam tetapi bertanya ribuan kali setiap hari, sangat masuk akal untuk membebani indeks dan mempercepat kueri sebanyak mungkin. Namun, dalam kasus sistem pemrosesan transaksi online, Anda ingin mencoba dan menemukan keseimbangan di antara keduanya.

Singkatnya, tambahkan indeks ke kolom yang banyak digunakan dalam kueri pemilihan, tetapi cobalah untuk tidak menambahkan terlalu banyak dan tambahkan kolom yang paling sering digunakan terlebih dahulu.

Setelah itu masalah pengujian beban untuk melihat bagaimana kinerja bereaksi dalam kondisi produksi, dan banyak penyesuaian untuk menemukan keseimbangan yang dapat diterima.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu snapshot APPL_TOP tampilan saat ini?

  2. FROM_TZ() Fungsi di Oracle

  3. Monitor perubahan tabel Oracle

  4. TO_YMINTERVAL() Fungsi di Oracle

  5. Perbedaan antara VARCHAR2(10 CHAR) dan NVARCHAR2(10)