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

Oracle 11G - Efek kinerja pengindeksan saat dimasukkan

Memang benar bahwa lebih cepat untuk memodifikasi tabel jika Anda tidak juga harus mengubah satu atau lebih indeks dan mungkin melakukan pemeriksaan kendala juga, tetapi juga sebagian besar tidak relevan jika Anda kemudian harus menambahkan indeks tersebut. Anda harus mempertimbangkan perubahan total pada sistem yang ingin Anda pengaruhi, bukan hanya satu bagian saja.

Jelas jika Anda menambahkan satu baris ke dalam tabel yang sudah berisi jutaan baris maka akan sangat bodoh untuk menjatuhkan dan membangun kembali indeks.

Namun, bahkan jika Anda memiliki tabel yang benar-benar kosong di mana Anda akan menambahkan beberapa juta baris, itu masih bisa lebih lambat untuk menunda pengindeksan sampai sesudahnya.

Alasan untuk ini adalah bahwa penyisipan seperti itu paling baik dilakukan dengan mekanisme jalur langsung, dan ketika Anda menggunakan penyisipan jalur langsung ke dalam tabel dengan indeks di atasnya, segmen sementara dibangun yang berisi data yang diperlukan untuk membangun indeks (data plus baris ). Jika segmen sementara tersebut jauh lebih kecil dari tabel yang baru saja Anda muat, maka segmen tersebut juga akan lebih cepat untuk dipindai dan dibuat indeksnya.

alternatifnya, jika Anda memiliki lima indeks di atas meja, adalah melakukan lima pemindaian tabel penuh setelah Anda memuatnya untuk membangun indeks.

Jelas ada area abu-abu besar yang terlibat di sini, tetapi dilakukan dengan baik untuk:

  1. Mempertanyakan otoritas dan aturan umum, dan
  2. Menjalankan tes yang sebenarnya untuk menentukan fakta dalam kasus Anda sendiri.

Sunting:

Pertimbangan lebih lanjut -- Anda menjalankan pencadangan saat indeks dijatuhkan. Sekarang, setelah pemulihan darurat, Anda harus memiliki skrip yang memverifikasi bahwa semua indeks berada di tempatnya, ketika Anda memiliki bisnis yang kehabisan tenaga untuk memulihkan sistem.

Juga, jika Anda benar-benar bertekad untuk tidak mempertahankan indeks selama pemuatan massal, jangan jatuhkan indeks -- nonaktifkan saja. Ini mempertahankan metadata untuk keberadaan dan definisi indeks, dan memungkinkan proses pembangunan kembali yang lebih sederhana. Berhati-hatilah agar Anda tidak secara tidak sengaja mengaktifkan kembali indeks dengan memotong tabel, karena ini akan membuat indeks yang dinonaktifkan diaktifkan kembali.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle memesan dengan berbeda

  2. Refresh / Memperbarui layar formulir di Oracle D2k Forms 6i

  3. SQLcl untuk mentransfer data dari Oracle ke PostgreSQL atau YugabyteDB

  4. Bagaimana Anda mengurai cuplikan XML sederhana di Oracle PL/SQL dan memuatnya di tabel temp global?

  5. Mendapatkan MS Office 2013 (32 bit) Excel dan Access untuk terhubung ke database Oracle saat klien 32 dan 64 diinstal