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

Indeks Oracle dan jenis indeks di Oracle dengan contoh

Kita akan membahas indeks/jenis indeks Oracle di oracle dengan contoh  dalam postingan ini. Saya akan membahas semua opsi tentang cara membuat indeks di oracle. Saya juga akan membahas  cara memeriksa ukuran indeks di oracle. Saya harap Anda akan menyukai posting ini. Saya akan menantikan  umpan balik tentang postingan ini

Apa itu Indeks Oracle?

  • Sama seperti kami memiliki indeks yang ada di buku teks untuk membantu kami menemukan topik tertentu dalam buku, indeks Oracle berperilaku dengan cara yang sama.kami memiliki berbagai jenis indeks di oracle.
  • Indeks digunakan untuk mencari baris dalam tabel oracle dengan cepat. Jika indeks tidak ada, kueri pemilihan harus membaca seluruh tabel dan mengembalikan baris. Dengan Indeks, baris dapat diambil dengan cepat
  • Kita harus membuat Indeks saat mengambil sejumlah kecil baris dari sebuah tabel. atau untuk mengambil set baris pertama secepat mungkin dari beberapa kueri yang pada akhirnya akan mengembalikan sejumlah besar baris. Itu juga tergantung pada distribusi data yaitu faktor pengelompokan
  • Indeks secara logika dan fisik independen dari data di tabel asosiasi.
  • Indeks adalah struktur opsional yang terkait dengan tabel dan cluster. Anda dapat membuat indeks pada satu atau beberapa kolom tabel untuk mempercepat eksekusi pernyataan SQL pada tabel tersebut.
  • Indeks adalah cara utama untuk mengurangi I/O disk jika digunakan dengan benar.
  • Kueri memutuskan di awal apakah akan menggunakan indeks atau tidak
  • Hal terbaik dengan indeks adalah kinerja pengambilan data yang diindeks tetap hampir konstan, bahkan ketika baris baru dimasukkan. Namun, kehadiran banyak indeks pada tabel menurunkan kinerja pembaruan, penghapusan, dan penyisipan karena Oracle juga harus memperbarui indeks yang terkait dengan tabel.
  • Jika Anda  pemilik tabel, Anda dapat membuat indeks  atau jika Anda ingin membuat indeks untuk tabel dalam skema lain, maka Anda harus memiliki  Hak istimewa sistem  BUAT INDEKS  atau hak istimewa indeks pada tabel itu

Jenis Indeks Logis

Ini mendefinisikan karakteristik aplikasi Indeks

Unik atau Tidak Unik Indeks bisa Unik atau tidak Unik. Oracle membuat indeks unik untuk kunci Primer dan batasan kunci unik
Jika indeks non-unik sudah ada di kolom itu, itu tidak akan membuat indeks unik baru untuk kunci Utama di Oracle
Komposit Indeks dapat terdiri dari satu atau beberapa kolom. Indeks komposit dapat mempercepat pengambilan data untuk pernyataan SELECT di mana klausa WHERE mereferensikan semua atau bagian utama kolom dalam indeks komposit.
Indeks Berbasis Fungsi Data kolom yang diindeks didasarkan pada perhitungan
Indeks Domain Aplikasi Indeks ini digunakan dalam aplikasi khusus (Spasial, Teks).

Apa yang dimaksud dengan kolom Pseudo ROWID

ROWID mengembalikan alamat setiap baris dalam tabel. Oracle memberikan ROWID untuk setiap baris.ROWID terdiri dari berikut

  • Data nomor objek objek
  • Blok data dalam file data tempat baris berada
  • Posisi baris dalam blok data (baris pertama adalah 0)
  • File data tempat baris berada (file pertama adalah 1). Nomor file relatif terhadap tablespace.

Oracle menggunakan ROWID secara internal untuk mengakses baris. Misalnya, Oracle menyimpan ROWID dalam indeks dan menggunakannya untuk mengakses baris dalam tabel.

Anda dapat menampilkan ROWID baris menggunakan perintah SELECT sebagai berikut:

pilih rowid, emp_name dari emp;

ROWID EMP_NAME

AAADC576474722aSAAA   John

Oracle menyediakan paket yang disebut DBMS_ROWID untuk memecahkan kode ROWID.

Setelah baris ditetapkan, Oracle ROWID tidak mengubah ROWID selama masa baris. Tapi itu berubah ketika tabel dibangun kembali Ketika baris dipindahkan melintasi partisi, atau menyusutnya tabel

Jenis indeks di oracle dengan contoh

Ada 6 jenis indeks yang berbeda di Oracle

(1) B-Tree

(2) B-Tree Terkompresi

(3)  Peta Bit

(4) Berbasis Fungsi

(5) Kunci Terbalik (RKI)

(6) Tabel terorganisir indeks (IOT).

Mari kita cari tahu masing-masing secara mendetail dan cara membuat indeks di oracle untuk masing-masing jenis ini

B – Indeks Pohon:

  • Indeks B-Tree (pohon seimbang) adalah jenis indeks yang paling umum.
  • Indeks B-Tree menyimpan ROWID dan nilai kunci indeks dalam struktur pohon.
  • Saat membuat indeks, blok ROOT dibuat, kemudian blok BRANCH dibuat dan terakhir blok LEAF.
  • Setiap cabang menyimpan rentang data yang dipegang oleh blok daunnya, dan setiap root menyimpan rentang data yang dipegang oleh cabangnya:
  • Indeks B-Tree paling berguna pada kolom yang muncul di klausa where (SELECT … WHERE EMPNO=1).
  • Server Oracle, menjaga keseimbangan pohon dengan membagi blok indeks, saat data baru dimasukkan ke tabel.
  • Setiap kali pernyataan DML dilakukan pada tabel indeks, aktivitas indeks terjadi, membuat indeks tumbuh (menambahkan daun dan cabang).

Keuntungan

  • Semua blok daun pohon memiliki kedalaman yang sama.
  • Indeks B-tree secara otomatis tetap seimbang.
  • Semua blok B-tree rata-rata tiga perempat penuh.
  • B-tree memberikan kinerja pengambilan yang sangat baik untuk berbagai kueri, termasuk pencocokan tepat dan penelusuran rentang.
  • Menyisipkan, memperbarui, dan menghapus efisien, mempertahankan urutan kunci untuk pengambilan cepat.
  • Kinerja B-tree bagus untuk tabel kecil dan besar, dan tidak menurun seiring bertambahnya ukuran tabel.
BUAT   INDEX ON  (,…)TABLESPACE ;ExampleCreate index   scott.exp_idx   pada tabel scott.example(  name)Tablespace TOOLS; 

Apa yang dimaksud dengan Indeks B-tree terkompresi

  • Indeks B-Tree Terkompresi dibuat di atas tabel besar, dalam lingkungan gudang data. Dalam jenis indeks ini, kemunculan duplikat dengan nilai yang sama dihilangkan, sehingga mengurangi jumlah ruang penyimpanan, yang dibutuhkan indeks.
  • Dalam indeks B-Tree terkompresi, untuk setiap nilai kunci, daftar ROWID disimpan
  • Menentukan kata kunci COMPRESS saat membuat indeks (CREATE INDEX … COMPRESS) akan membuat indeks B-Tree terkompresi.
  • Indeks B-Tree biasa dapat dibangun kembali menggunakan kata kunci COMPRESS untuk mengompresnya.
BUAT   INDEX ON  (,…)PCTFREE TABLESPACE Kompres  

Apa itu Indeks Bitmap

  • Indeks Bitmap paling sesuai pada data kardinalitas berbeda yang rendah (berlawanan dengan indeks B-Tree).
  • Jenis indeks ini, membuat peta biner dari semua nilai indeks, dan menyimpan peta itu di blok indeks, ini berarti indeks akan membutuhkan lebih sedikit ruang daripada indeks B-Tree.
  • Setiap bit dalam bitmap sesuai dengan kemungkinan rowid. Jika bit disetel, maka itu berarti baris dengan rowid yang sesuai berisi nilai kunci. Fungsi pemetaan mengubah posisi bit menjadi rowid yang sebenarnya, sehingga indeks bitmap menyediakan fungsionalitas yang sama seperti indeks biasa meskipun menggunakan representasi yang berbeda secara internal. Jika jumlah nilai kunci yang berbeda kecil, maka indeks bitmap sangat hemat ruang
  • Bila ada indeks bitmap pada tabel, maka pembaruan akan menghilangkan kunci tabel penuh. Jadi, indeks Bitmap berguna pada kolom besar dengan aktivitas DML rendah (pembaruan jarang) atau tabel hanya baca. Inilah alasan mengapa Anda sering menemukan indeks bitmap banyak digunakan di lingkungan gudang data (DWH).
  • Struktur Indeks Bitmap berisi peta bit yang menunjukkan nilai dalam kolom, misalnya untuk kolom GENDER, blok indeks akan menampung ROWID awal, ROWID akhir, dan peta bit:
  • Indeks bitmap sangat berguna ketika dibuat pada kolom dengan kardinalitas rendah, digunakan dengan operator AND &OR dalam kondisi query:
BUAT BITMAP  INDEX ON  (,…)PCTFREE TABLESPACE 

Contoh

BUAT INDEKS BITMAP PADA emp_data(gender);PILIH JUMLAH(*) FROM emp_dataWHERE GENDER='M”;

Keuntungan Indeks Bitmap

  • Pengurangan waktu respons untuk kelas kueri yang besar
  • Pengurangan substansial dalam penggunaan ruang dibandingkan dengan teknik pengindeksan lainnya
  • Peningkatan performa yang dramatis bahkan pada perangkat keras kelas bawah
  • DML dan beban paralel yang sangat efisien

Indeks Berbasis Fungsi

Indeks Berbasis Fungsi adalah indeks yang dibuat pada kolom tempat fungsi biasanya diterapkan.

Saat menggunakan fungsi pada kolom yang diindeks, indeks diabaikan, oleh karena itu indeks berbasis fungsi sangat berguna untuk operasi ini.

CREATE INDEX ON  [ Function(,;ContohCREATE INDEX EMP_IDX di EMP(UPPER(ENAME));SELECT *FROM EmpWHERE UPPER(Ename) like 'JOHN`;

Apa itu Indeks Reverse-Key

  • Mereka  adalah tipe khusus dari indeks B-Tree dan sangat berguna saat dibuat pada kolom yang berisi nomor urut.
  • Bila menggunakan B-Tree biasa, indeks akan tumbuh memiliki banyak cabang dan mungkin beberapa level, sehingga menyebabkan penurunan kinerja, RKI memecahkan masalah dengan membalik byte setiap kunci kolom dan mengindeks data baru.
  • Metode ini mendistribusikan data secara merata dalam indeks. Membuat RKI dilakukan dengan menggunakan kata kunci REVERSE:CREATE INDEX … ON … REVERSE;
BUAT INDEKS ON  ()TABLESPACE REVERSE;ContohCREATE INDEX emp_idx i ON emp_table (nama depan,nama belakang) REVERSE;

Apa itu Tabel Terorganisir Indeks (IOT)

  • Saat kami  menggunakan B-Tree, Bitmap, dan indeks kunci Reverse  digunakan untuk tabel yang menyimpan data secara tidak berurutan (Tabel Heap).
  • Indeks ini berisi lokasi ROWID dari baris tabel yang diperlukan, sehingga memungkinkan akses langsung ke data baris
  • Sebuah tabel yang disusun berdasarkan indeks berbeda dari tabel biasa karena data untuk tabel tersebut disimpan dalam indeks yang terkait. Perubahan pada data tabel, seperti menambahkan baris baru, memperbarui baris, atau menghapus baris, mengakibatkan pembaruan indeks.
  • Tabel yang diatur indeks seperti tabel biasa dengan indeks pada satu atau lebih kolomnya, tetapi alih-alih mempertahankan dua penyimpanan terpisah untuk tabel dan indeks B-tree, sistem database hanya memelihara satu B- indeks pohon yang berisi nilai kunci yang disandikan dan nilai kolom terkait untuk baris yang sesuai. Daripada memiliki rowid baris sebagai elemen kedua dari entri indeks, baris data yang sebenarnya disimpan dalam indeks B-tree. Baris data dibangun di atas kunci utama untuk tabel, dan setiap entri indeks B-tree berisi . Tabel yang diatur indeks cocok untuk mengakses data dengan kunci utama atau kunci apa pun yang merupakan awalan yang valid dari kunci utama.
  • Tidak ada duplikasi nilai kunci karena hanya nilai kolom bukan kunci yang disimpan bersama kunci. Anda dapat membuat indeks sekunder untuk menyediakan akses yang efisien oleh kolom lain. Aplikasi memanipulasi tabel yang diatur indeks seperti tabel biasa, menggunakan pernyataan SQL. Namun, sistem database melakukan semua operasi dengan memanipulasi indeks B-tree yang sesuai.

Fitur tabel yang diatur indeks

  • Kunci utama secara unik mengidentifikasi sebuah baris; kunci utama harus ditentukan
  • Akses berbasis kunci utama
  • Rowid logis dalam pseudocolumn ROWID memungkinkan pembuatan indeks sekunder
  • Batasan UNIK tidak diizinkan tetapi pemicu diizinkan
  • Tidak dapat disimpan dalam cluster
  • Dapat berisi kolom LOB tapi bukan kolom LONG
  • Distribusi dan replikasi tidak didukung


perintah CREATE TABLE:CREATE TABLE …ORGANIZATION INDEX TABLESPACE … (tentukan ini adalah IOT)PCTTHRESHOLD … (tentukan % blok yang akan disimpan untuk menyimpan data baris, valid 0-50 (default 50))TERMASUK … (sebutkan kolom mana yang akan memecah baris ketika panjang baris melebihi PCTTHRESHOLD) OVERFLOW TABLESPACE … (tentukan tablespace tempat bagian kedua dari baris akan disimpan) MAPPING TABLE; (menyebabkan pembuatan tabel pemetaan, diperlukan saat membuat indeks Bitmap di IOT)

Tabel Pemetaan memetakan ROWID fisik indeks ke ROWID logis di IOT. IOT menggunakan ROWID logis untuk mengelola akses tabel berdasarkan indeks karena ROWID fisik berubah setiap kali data ditambahkan atau dihapus dari tabel. Untuk membedakan IOT dari indeks lain, kueri tampilan USER_INDEXES menggunakan kolom pct_direct_access. Hanya IOT yang memiliki nilai non-NULL untuk kolom ini.

Indeks Domain Aplikasi

Oracle menyediakan pengindeksan yang dapat diperluas untuk mengakomodasi indeks pada tipe data yang kompleks seperti dokumen, data spasial, gambar, dan klip video serta memanfaatkan teknik pengindeksan khusus.

Dengan pengindeksan yang dapat diperluas, Anda dapat merangkum rutinitas manajemen indeks khusus aplikasi sebagai jenis indeks objek skema dan tentukan indeks domain (indeks khusus aplikasi) pada kolom tabel atau atribut dari tipe objek. Pengindeksan yang dapat diperluas juga menyediakan pemrosesan operator khusus aplikasi yang efisien s.

Perangkat lunak aplikasi, yang disebut cartridg e, mengontrol struktur dan isi indeks domain. Server Oracle berinteraksi dengan aplikasi untuk membangun, memelihara, dan mencari indeks domain. Struktur indeks itu sendiri dapat disimpan dalam database Oracle sebagai tabel yang diatur indeks atau secara eksternal sebagai file.

Menggunakan Indeks Domain

Indeks domain dibangun menggunakan logika pengindeksan yang disediakan oleh tipe indeks yang ditentukan pengguna. Tipe indeks menyediakan mekanisme yang efisien untuk mengakses data yang memenuhi predikat operator tertentu. Biasanya, tipe indeks yang ditentukan pengguna adalah bagian dari opsi Oracle, seperti opsi Spasial.

Misalnya, SpatialIndextype memungkinkan pencarian yang efisien dan pengambilan data spasial yang tumpang tindih dengan kotak pembatas tertentu.

Kartrid menentukan parameter yang dapat Anda tentukan dalam membuat dan memelihara indeks domain. Demikian pula, kinerja dan karakteristik penyimpanan indeks domain disajikan dalam dokumentasi kartrid khusus.

Sejauh ini kita telah membahas berbagai jenis indeks di oracle dengan sebuah contoh, sekarang mari kita periksa cara mengubah/menjatuhkan/membuat ulang mereka

Cara membuat ulang Indeks/membangun kembali indeks di Oracle

Kita dapat menggunakan pernyataan ALTER INDEX … REBUILD untuk mengatur ulang atau memadatkan indeks yang ada atau untuk mengubah karakteristik penyimpanannya

Pernyataan REBUILD menggunakan indeks yang ada sebagai dasar untuk yang baru.

ALTER INDEX … REBUILD biasanya lebih cepat daripada menjatuhkan dan membuat ulang indeks.

Ia membaca semua blok indeks menggunakan multi-blok I/O kemudian membuang blok cabang.

Keuntungan lebih lanjut dari pendekatan ini adalah bahwa indeks lama masih tersedia untuk kueri saat pembangunan kembali sedang berlangsung.

Mengubah indeks    membangun kembali;Mengubah indeks    membangun kembali  tablespace ;

Cara Menulis Pernyataan yang Hindari Menggunakan Indeks

  • Anda dapat menggunakan petunjuk pengoptimal NO_INDEX untuk memberikan fleksibilitas maksimum kepada CBO sambil melarang penggunaan indeks tertentu.
  • Anda dapat menggunakan petunjuk LENGKAP untuk memaksa pengoptimal memilih pemindaian tabel lengkap alih-alih pemindaian indeks.
  • Anda dapat menggunakan petunjuk INDEX, INDEX_COMBINE, atau AND_EQUAL untuk memaksa pengoptimal menggunakan satu indeks atau sekumpulan indeks yang terdaftar sebagai ganti yang lain.

Cara mengumpulkan statistik untuk Indeks

Statistik indeks dikumpulkan menggunakan ANALYZE INDEX atau pernyataan dbms_stats.

Opsi yang tersedia adalah HENTIKAN/PERKIRAAN STATISTIK atau VALIDASI STRUKTUR.

Dari 10g dan seterusnya, saat indeks dibuat, statistik komputasi dilakukan secara otomatis

Saat menggunakan struktur validasi, Oracle mengisi tampilan INDEX_STATS dengan statistik yang terkait dengan indeks yang dianalisis. Statistik berisi jumlah baris &blok daun (LF_ROWS, LF_BLKS), jumlah baris &blok cabang (BR_ROWS, BR_BLKS), jumlah baris daun yang dihapus (DEL_LF_ROWS), ruang yang digunakan (USED_SPACE), jumlah kunci yang berbeda (DISTINCT_KEYS) , dll. Statistik ini dapat digunakan untuk menentukan apakah  indeks harus dibuat ulang atau tidak

Bagaimana Oracle memutuskan penggunaan indeks?

Oracle secara otomatis memutuskan apakah indeks harus digunakan oleh mesin Pengoptimal.

Oracle memutuskan apakah akan menggunakan indeks atau tidak tergantung pada kueri.

Oracle dapat memahami apakah menggunakan indeks akan meningkatkan kinerja dalam kueri yang diberikan. Jika Oracle berpikir menggunakan indeks akan meningkatkan kinerja, itu akan menggunakan indeks jika tidak maka akan mengabaikan indeks.

Mari kita   memahami dengan contoh ini

Kami memiliki tabel emp   yang berisi emp_name, salary,dept_no ,emp_no,date_of_joining dan kami memiliki indeks pada emp_name

Kueri 1

pilih * dari emp  di mana emp_name ='John';

Kueri di atas akan menggunakan indeks saat kami mencoba mendapatkan informasi tentang emp berdasarkan namanya.

Kueri 2

pilih * dari emp;

Kueri di atas tidak akan menggunakan indeks karena kami mencoba menemukan semua baris dalam tabel dan kami tidak memiliki klausa where dalam kueri

Kueri 3

pilih * dari emp dimana dept_no =5;

Kueri di atas tidak akan menggunakan indeks karena klausa where tidak memilih kolom yang memiliki indeks

Kueri 4

pilih * dari emp where substr(emp_name,1,4) ='XYZW';

Kueri di atas tidak akan menggunakan indeks karena klausa where menggunakan fungsi pada kolom dan kami tidak memiliki indeks fungsional pada emp_name

Bagaimana cara membuat atau membangun kembali indeks Online?

Oracle digunakan untuk mengunci tabel di mana indeks sedang dibuat selama proses pembuatan di versi yang lebih lama. Hal ini membuat tabel tidak tersedia untuk manipulasi data selama pembuatan indeks.

Sekarang dengan 8i, Oracle memperkenalkan pembangunan kembali indeks secara online di mana Oracle tidak mengunci tabel di mana indeks sedang dibangun.

Pengindeksan online disediakan melalui kata kunci ONLINE.

BUAT   INDEX ON  (,…)PCTFREE TABLESPACE Online;Ubah indeks  bangun kembali secara online;

Pada dasarnya, dengan pembangunan kembali online, Oracle mengunci tabel di awal dan akhir pembuatan indeks. Ini memungkinkan transaksi di antaranya. Mekanismenya telah cukup ditingkatkan dengan 11g dan 12c

Apa Kelemahan  Indeks

Indeks meningkatkan kinerja kueri pemilihan, indeks juga dapat menurunkan kinerja manipulasi data.

Banyak indeks pada tabel dapat memperlambat INSERTS dan DELETES secara drastis

Semakin banyak indeks di tabel, semakin banyak waktu yang dibutuhkan untuk memasukkan dan menghapus.

Demikian pula, setiap perubahan pada kolom yang diindeks akan membutuhkan perubahan pada indeks.

Jadi kita harus memilih indeks dengan sangat hati-hati dan membuang mana yang tidak digunakan.

Meskipun ruang ekstra yang ditempati oleh indeks juga menjadi pertimbangan, ini mungkin tidak terlalu menjadi masalah karena biaya penyimpanan data telah menurun secara substansial.

Apa itu indeks yang tidak dapat digunakan

Indeks yang tidak dapat digunakan diabaikan oleh pengoptimal dalam memutuskan rencana penjelasan

Itu  juga tidak dikelola oleh DML yaitu memperbarui, menyisipkan, menghapus apakah memperbarui indeks

Mungkin ada beberapa alasan mengapa indeks berada dalam status tidak dapat digunakan. Anda melakukan pembangunan kembali tabel tetapi tidak membangun kembali indeks, maka indeks akan berada dalam keadaan tidak dapat digunakan. Salah satu alasan lain untuk membuat indeks tidak dapat digunakan adalah untuk meningkatkan kinerja beban massal. Alasan lain mungkin karena pengoptimal mengambil indeks yang salah setiap saat dan waktu sangat penting sehingga Anda dapat memutuskan untuk membuatnya tidak dapat digunakan

Indeks atau partisi indeks yang tidak dapat digunakan harus dibangun kembali, atau dijatuhkan dan dibuat ulang sebelum dapat digunakan. Memotong tabel membuat indeks yang tidak dapat digunakan menjadi valid.

Dimulai dengan Oracle Database 11g Release 2, saat Anda membuat indeks yang ada tidak dapat digunakan, segmen indeksnya akan dihapus.

Fungsionalitas indeks yang tidak dapat digunakan bergantung pada pengaturan parameter inisialisasi SKIP_UNUSABLE_INDEXES.

Bila SKIP_UNUSABLE_INDEXES TRUE (default), maka:

Pernyataan DML terhadap tabel dilanjutkan, tetapi indeks yang tidak dapat digunakan tidak dipertahankan.

Pernyataan DML diakhiri dengan kesalahan jika ada indeks yang tidak dapat digunakan yang digunakan untuk menerapkan batasan UNIK.

Untuk indeks yang tidak dipartisi, pengoptimal tidak mempertimbangkan indeks yang tidak dapat digunakan saat membuat rencana akses untuk pernyataan SELECT. Satu-satunya pengecualian adalah ketika indeks secara eksplisit ditentukan dengan petunjuk INDEX().

Bila SKIP_UNUSABLE_INDEXES FALSE, maka:

Jika ada indeks atau partisi indeks yang tidak dapat digunakan, pernyataan DML apa pun yang akan menyebabkan indeks atau partisi indeks tersebut diperbarui akan dihentikan dengan kesalahan.

Untuk pernyataan SELECT, jika ada indeks yang tidak dapat digunakan atau partisi indeks yang tidak dapat digunakan tetapi pengoptimal tidak memilih untuk menggunakannya untuk rencana akses, pernyataan akan dilanjutkan. Namun, jika pengoptimal memilih untuk menggunakan indeks yang tidak dapat digunakan atau partisi indeks yang tidak dapat digunakan, pernyataan akan diakhiri dengan kesalahan.

Tampilan kamus data di  Indeks

DBA_INDEXES ALL_INDEXES USER_INDEXES Tampilan DBA menjelaskan indeks pada semua tabel dalam database. ALL view menjelaskan indeks pada semua tabel yang dapat diakses oleh pengguna. Tampilan USER dibatasi untuk indeks yang dimiliki oleh pengguna. Beberapa kolom dalam tampilan ini berisi statistik yang dihasilkan oleh paket DBMS_STATS atau pernyataan ANALYZE.
DBA_IND_COLUMNS ALL_IND_COLUMNS

USER_IND_COLUMNS

Tampilan ini menjelaskan kolom indeks pada tabel. Beberapa kolom dalam tampilan ini berisi statistik yang dihasilkan oleh paket DBMS_STATS atau pernyataan ANALYZE.
DBA_IND_EXPRESSIONS ALL_IND_EXPRESSIONS

USER_IND_EXPRESSIONS

Tampilan ini menjelaskan ekspresi indeks berbasis fungsi pada tabel.
DBA_IND_STATISTICS ALL_IND_STATISTICS

USER_IND_STATISTICS

Tampilan ini berisi statistik pengoptimal untuk indeks.

cara menemukan indeks pada tabel

setel ukuran halaman 50000 verifikasi off echo offcol table_name head 'Nama Tabel' format a20col index_name head 'Index Name' format a25col column_name head 'Column Name' format a30break pada table_name pada index_namepilih     table_name, index_name, column_namefrom all_ind_columnswhere table_name like upper(' ')urutkan berdasarkan nama_tabel, nama_indeks, posisi_kolom/

Cara menentukan ukuran indeks

Ukuran INDEX pilih segment_name,sum(bytes)/1024/1024/1024 sebagai "SIZE in GB" dari user_segments di mana segment_name='INDEX_NAME' dikelompokkan menurut segment_name;ORpilih pemilik,segment_name,sum(bytes)/1024/1024/1024 sebagai "SIZE in GB" dari dba_segments di mana owner='SCHEMA_NAME' dan segment_name='INDEX_NAME' dikelompokkan berdasarkan pemilik,segment_name; Daftar Ukuran semua INDEKS seorang PENGGUNA pilih segment_name,sum(bytes)/1024/1024/1024 sebagai "SIZE in GB" dari user_segments di mana segment_type='INDEX' mengelompokkan menurut segment_name diurutkan dengan "SIZE dalam GB" desc;ORpilih pemilik,segment_name,sum(bytes)/1024 /1024/1024 sebagai "SIZE dalam GB" dari dba_segments di mana owner='SCHEMA_NAME' dan segment_type='INDEX' mengelompokkan menurut pemilik,segment_name diurutkan menurut "SIZE dalam GB" desc;Jumlah ukuran semua indeks pilih pemilik,jumlah(byte)/1024/1024/1024 sebagai "UKURAN dalam GB" dari dba_segments di mana pemilik='SCHEMA_NAME' dan segment_type='INDEX' dikelompokkan berdasarkan pemilik;

Cara menentukan Indeks  definisi

set long 4000pilih dbms_metadata.get_ddl('INDEX','',' 

Cara menentukan statistik Indeks

setel halaman 250set ukuran garis 100set verifikasi offcol format nama_tabel a24 heading 'TABLE NAME'col format nama_indeks a23 heading 'INDEX NAME'col u format a1 heading 'U'col format blevel 0 heading 'BL'col format leaf_blocks 999990 heading 'LEAF |BLOCKS'col format berbeda_keys 9999990 heading 'DISTINCT|KEYS'col format avg_leaf_blocks_per_key 9999990 heading 'LEAF|BLKS|/KEY'col avg_data_blocks_per_key format 9999990 heading 'DATA|BLKS|/KEY'rembreak pada table_namecode,pilih_nama_indeks(nama_nama_indeks_pilih tabel 'UNIQUE', 'U', null ) u,blevel, leaf_blocks, different_keys,avg_leaf_blocks_per_key, avg_data_blocks_per_keyfrom sys.dba_indexeswhere table_owner seperti upper('&owner')dan table_name seperti upper('&table')_ 

 Artikel Terkait

tabel eksternal di Oracle :Lihat posting ini untuk informasi tentang penggunaan tabel eksternal di Oracle dengan contoh, cara membuat tabel eksternal, cara menggunakannya
Oracle Create table :Tabel adalah unit dasar data penyimpanan di Oracle Database. kami membahas cara menggunakan perintah Oracle create table untuk membuat tabel dengan kunci asing /primary key
oracle create tablespace statement:Artikel ini tentang cara membuat tablespace di oracle, berbagai karakteristik yang terkait dengannya dan pernyataan membuat tablespace yang berbeda
Temukan status indeks dan kolom yang ditetapkan untuk tabel
Indeks Virtual di Oracle:Apa itu Indeks Virtual di Oracle? Penggunaan, batasan, keuntungan, dan cara menggunakan untuk memeriksa untuk menjelaskan rencana dalam database Oracle, Parameter tersembunyi _USE_NOSEGMENT_INDEXES
Faktor pengelompokan Indeks Oracle:Bagaimana faktor pengelompokan Indeks Oracle dihitung dan bagaimana pengaruhnya terhadap rencana penjelasan
Oracle Partition Index :Memahami Oracle Partition Index, Apa itu Global Non-partitioned Indexes?, Apa itu local prefixed indexes, non-prefixed local index

Kursus yang Direkomendasikan

Berikut adalah Kursus Udemy yang bagus untuk Oracle SQL
Oracle-Sql-Step-by-step :Kursus ini mencakup sql dasar, bergabung, Membuat Tabel dan memodifikasi strukturnya, Membuat Tampilan, Union, Union -semua dan banyak hal lainnya . Kursus yang bagus dan kursus yang harus dimiliki untuk pemula SQL
Kursus Lengkap Sertifikasi Oracle SQL :Ini adalah kursus yang bagus untuk siapa saja yang ingin siap kerja untuk keterampilan pengembang SQL. Kursus yang dijelaskan dengan baik
Pengembang Oracle SQL:Esensi, Kiat, dan Trik :Alat pengembang Oracle Sql sedang digunakan oleh banyak pengembang. Kursus ini memberi kita trik dan pelajaran tentang cara menggunakannya secara efektif dan menjadi pengembang sql yang produktif
Oracle SQL Performance Tuning Masterclass 2020 :Penyetelan kinerja adalah salah satu keterampilan penting dan paling dicari. Ini adalah kursus yang bagus untuk mempelajarinya dan mulai melakukan penyetelan kinerja sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat mengambil id dari baris yang dimasukkan terakhir di Hibernate menggunakan Oracle

  2. Pembilasan Kursor Tunggal

  3. SQL bukan fungsi grup grup tunggal

  4. Penggunaan Ruang Tinggi Dari crfclust.bdb

  5. Menambahkan nama Skema ke entitas di data Spring?