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

Apakah indeks berkerumun atau tidak berkerumun di Oracle?

Secara default semua indeks di Oracle tidak dikelompokkan. Satu-satunya indeks berkerumun di Oracle adalah indeks kunci primer Index-Organized tables (IOT).

Anda dapat menentukan apakah sebuah tabel adalah IOT dengan melihat IOT_TYPE kolom di ALL_TABLES tampilan (kunci utamanya dapat ditentukan dengan menanyakan ALL_CONSTRAINTS dan ALL_CONS_COLUMNS dilihat).

Berikut adalah beberapa alasan mengapa kueri Anda dapat mengembalikan baris yang dipesan:

  1. Tabel Anda disusun berdasarkan indeks dan FIELD adalah bagian utama dari kunci utamanya.
  2. Tabel Anda tersusun rapi tetapi baris-barisnya secara kebetulan diurutkan berdasarkan FIELD , ini terkadang terjadi pada kolom identitas yang bertambah.

Kasus 2 akan mengembalikan baris yang diurutkan hanya secara kebetulan. Urutan sisipan tidak dijamin, selanjutnya Oracle bebas untuk menggunakan kembali blok lama jika ada yang kebetulan memiliki ruang yang tersedia di masa mendatang, mengganggu pemesanan yang rapuh.

Kasus 1 sebagian besar waktu akan mengembalikan baris yang dipesan, namun Anda tidak boleh mengandalkannya karena urutan baris yang dikembalikan tergantung pada algoritme jalur akses yang dapat berubah di masa mendatang (atau jika Anda mengubah parameter DB, terutama paralelisme ).

Dalam kedua kasus jika Anda ingin memesan baris, Anda harus menyediakan klausa ORDER BY:

SELECT field 
  FROM (SELECT field 
          FROM TABLE 
         ORDER BY field) 
 WHERE rownum <= 100;


  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 ke Excel - prosedur ekspor PL/SQL

  2. Tipe data Oracle Number ke format datetime

  3. Bagaimana cara menyimpan hasil seleksi ke variabel dalam prosedur Oracle

  4. Mengakses elemen ke-2 di kolom varray

  5. Cara Mendapatkan Tanggal Dari String di Oracle