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

Bagaimana faktor pengelompokan Oracle Index dihitung

Daftar Isi

Apa yang dimaksud dengan faktor pengelompokan indeks Oracle (CF)?

Faktor pengelompokan adalah angka yang mewakili sejauh mana data didistribusikan secara acak dalam sebuah tabel dibandingkan dengan kolom yang diindeks. Secara sederhana, ini adalah jumlah “blok sakelar” saat membaca tabel menggunakan indeks.

Ini adalah statistik penting yang memainkan peran penting dalam perhitungan pengoptimal. Ini digunakan untuk menimbang perhitungan untuk pemindaian rentang indeks. Jika faktor pengelompokan lebih tinggi, biaya indeks  pemindaian rentang lebih tinggi

Faktor Clustering yang baik adalah sama (atau mendekati) dengan nilai jumlah blok tabel.

Faktor Pengelompokan yang buruk sama (atau mendekati) dengan jumlah baris tabel.

Bagaimana CF dihitung?

Oracle menghitung faktor pengelompokan dengan melakukan pemindaian penuh terhadap indeks yang berjalan di blok daun dari ujung ke ujung. Untuk setiap entri di setiap daun, Oracle memeriksa nomor file absolut dan id blok, seperti yang diperoleh dari ROWID nilai yang diindeks. Itu terus menghitung jumlah blok "berbeda" yang berisi baris data yang ditunjukkan oleh indeks. Alamat pemblokiran dari entri pertama dibandingkan dengan alamat pemblokiran dari entri kedua. Jika itu adalah blok tabel yang sama, Oracle tidak menambah penghitung. Jika blok tabel berbeda, Oracle menambahkan satu ke hitungan. Proses penghitungan ini berlanjut dari entri ke entri dengan selalu membandingkan entri sebelumnya dengan entri saat ini.

Di atas adalah contoh CF yang baik karena CF sama dengan jumlah blok

Contoh faktor Pengelompokan Buruk

Di sini faktor pengelompokan sama dengan jumlah baris

Metode penghitungan ini memiliki hasil yang tidak terduga. Misalkan data kebetulan diisi pada sekumpulan kecil blok, tetapi tidak dalam urutan mengacu pada kunci indeks, maka satu set baris dapat tampak berada di atas sekumpulan blok yang besar jika mungkin hanya ada beberapa blok yang benar-benar berbeda . Jadi CF akan lebih tinggi tetapi pada kenyataannya, itu menyentuh sangat sedikit blok. Masalah ini dapat dikurangi dalam 12c dengan menggunakan preferensi tabel dan menentukan blok cache yang disimpan dalam tabel.

cara meningkatkan faktor pengelompokan di oracle

Pembangunan kembali indeks tidak akan berpengaruh pada faktor pengelompokan. Tabel perlu diurutkan dan dibangun kembali untuk menurunkan faktor pengelompokan.

Kueri untuk menentukan faktor pengelompokan 

CF disimpan dalam kamus data dan dapat dilihat dari dba_indexes (atau user_indexes).

Faktanya, semua statistik indeks dapat ditemukan di sana

SELECT index_name, index_type, uniqueness, blevel, leaf_blocks, distinct_keys, avg_leaf_blocks_per_key,
avg_data_blocks_per_key, clustering_factor, num_rows, sample_size, last_analyzed, partitioned
FROM dba_indexes
WHERE table_name = 'ORDERS' ;

Bagaimana faktor pengelompokan indeks Oracle memengaruhi rencana pengoptimal?

Faktor pengelompokan adalah statistik utama yang digunakan pengoptimal untuk menimbang jalur akses indeks. Ini adalah perkiraan jumlah LIO ke blok tabel yang diperlukan untuk memperoleh semua baris yang memenuhi kueri secara berurutan. Semakin tinggi faktor pengelompokan, semakin banyak LIO yang diperkirakan akan dibutuhkan oleh pengoptimal. Semakin banyak LIO yang diperlukan, semakin tidak menarik, dan karenanya lebih mahal, penggunaan indeks akan menjadi.

Artikel Terkait
Indeks partisi Oracle :Memahami indeks partisi Oracle, Apa itu Indeks Nonpartisi Global?, Apa itu indeks awalan lokal, indeks lokal tanpa awalan
menemukan indeks pada tabel di Oracle :lihat artikel ini untuk menemukan pertanyaan tentang caranya untuk menemukan indeks pada tabel di oracle, daftar semua indeks dalam skema, status indeks, kolom indeks
jenis indeks di oracle :Halaman ini terdiri dari informasi indeks oracle, berbagai jenis indeks di oracle dengan contoh, caranya untuk membuat/menjatuhkan/mengubah indeks di Oracle
Indeks Virtual di Oracle :Apa itu Indeks Virtual di Oracle? Kegunaan, batasan, keuntungan dan cara menggunakan untuk memeriksa rencana penjelasan di database Oracle, Parameter tersembunyi _USE_NOSEGMENT_INDEXES


  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 Pl/SQL:Loop melalui node XMLTYPE

  2. Batasan unik ORA-00001 dilanggar

  3. Kueri berparameter C# untuk Oracle - bug serius &berbahaya!

  4. Bagaimana cara membuat tabel Oracle dengan tabel tipe objek bersarang?

  5. Cara Menghitung Perbedaan Antara Dua Timestamp di Oracle