DHimanFLorhenza95@gmail.com

Dhimanflorhenza.blogspot.com.

DHimanFLorhenza95@gmail.com

Terimah kasih sudah berkunjung di blog saya.

DHimanFLorhenza95@gmail.com

welcome to my blog, if anyone would like to ask please comment.

DHimanFLorhenza95@gmail.com

IG = DHimanFLorhenza.

DHimanFLorhenza95@gmail.com

welcome to my blog, if anyone would like to ask please comment.

Monday, 23 May 2016

Materi Storage dan indexing



A. Materi Storage

     A.   Pengertian Storage
Pengertian Storage adalah penyimpan, tempat penyimpanan, media yang digunakan untuk menyimpan data yang diolah oleh komputer. Storage dibedakan menjadi removable storage dan non-removable storage.

B.   Sifat Storage
Dalam penyimpanan storage tidak lepas dari adanya listrik, maka sifat dari storage yang berkaitan dengan adanya listrik terbagi menjadi 2 macam, yaitu bersifat volatile dan bersifat non volatile:
1.Volatile adalah isi yang ada di dalam sstorage tetap ada meskipun lampu dimatikan.
2.Non-Volatile adalah isi yang ada di dalam storage akan hilang bila lampu dimatikan.

C.   SEJARAH STORAGE
Perkembangan media penyimpanan data (data storage) sejak komputer tercipta berubah sangat signifikan. Perbandingannya sangat mencolok, sebagai contoh data yang tersimpan dalam sebuah media penyimpanan sangat kecil, di bawah 4096 bits. Jika dikalkulasikan, 1 DVD setara dengan 90.000.000 punch card!!.
1.       Punch Card

                        


Sejak tahun 1725 telah dirancang sebuah media untuk menyimpan data yang diperkenalkan oleh seorang tokoh bernama Basile Bouchon menggunakan sebuah kertas berforasi untuk menyimpan pola yang digunakan pada kain. Namun pertama kali dipatenkan untuk penyimpanan data sekitar 23 September 1884 oleh Herman Hollerith – sebuah penemuan yang digunakan lebih dari 100 tahun hingga pertengahan 1970. Contoh di sini adalah bagaimana sebuah punch card dapat berfungsi sebagai media penyimpanan, memiliki 90 kolom (90 column punch card), terjadi tahun 1972. Jumlah data yang tersimpan dalam media tersebut sangat kecil, dan fungsi utamanya bukanlah menyimpan 
data namun menyimpan pengaturan (setting) untuk mesin yang berbeda.





2.       Punch Tape
           
             

Seorang tokoh bernama Alexander Bain merupakan orang yang pertama kali mengetahui penggunaan paper tape yang biasanya digunakan untuk mesin faksimili dan mesin telegram (tahun 1846). Setiap baris tape menampilkan satu karakter, namun karena Anda dapat membuat fanfold dengan mudah maka dapat menyimpan beberapa data secara signifikan menggunakan punch tape dibandingkan dengan punch card.

3.       Selectron Tube

                                          

Pada tahun 1946 RCA mulai mengembagkan Selectron Tube yang merupakan awal format memori komputer dan Selectron Tube terbesar berukuran 10 inci yang dapat menyimpan 4096 bits Harga satu buah tabung sangat mahal dan umurnya sangat pendek di pasaran.

4.      Magnetic Tape


                                           

Pada tahun 1950-an magnetic tape telah digunakan pertama kali oleh IBM untuk menyimpan data. Saat sebuah rol magetic tape dapat menyimpan data setara dengan 10.000 punch card, membuat magnetic tape sangat populer sebagai cara menyimpan data komputer hingga pertengahan tahun 1980-an
4.       Compact Cassette

                                                       

Compact Cassette merupakan salah satu bagian dari Magnetic Tape, dikarenakan sudah banyak dari kita yang telah memilikinya, hal itu menjadi bagian yang khusus. Compact Cassette diperkenalkan oleh Philips pada tahun 1963, namun tidak sampai tahun 1970 menjadi populer. Komputer, seperti ZX Spectrum, Commodore 64 dan Amstrad CPC menggunakan kaset untuk menyimpan data. Standar 90 menit Compact Cassette dapat menyimpan sekitar 700kB hingga 1MB dari data tiap sisinya. Jika disetarakan dengan DVD, maka data dalam Compact Cassette dapat dijalankan selama 281 hari.

5.       Magnetic Drum

                                                         
                                                          


Magnetic Drum memiliki panjang 16 inci yang bekerja 12.500 putaran tiap menit. Media ini digunakan untuk menunjang komputer IBM 650 sekitar 10.000 karakter dari Memori Utama.

6.       Floppy Disk

                                                       Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqWIShmO64dERTP67aYBa8eRe7MKGNU33lUs05spZ11S6Wr1_7SJERcnpKxTrY2cMexZmc0dKwqaUl7U057gRuAv6ewk2wJJU7oqr8nwoXOsXq8BlNdKE8gq5XUAusGqmZy3-DwgFRLyEQ/s1600/floppy+disk.png
 
Pada tahun 1969, floppy disk pertama kali diperkenalkan. Saat itu hanya bisa membaca (read-only), jadi ketika data tersimpan tidak dapat dimodifikasi maupun dihapus. Ukurannya 8 inch dan dapat menyimpan data sekitar 80kB. Empat tahun kemudian, floppy disk yang sama muncul dan dapat menyimpan data sebanyak 256kB. Selain itu, memiliki kemampuan dapat ditulis kembali (writeable). Perkembangan selanjutnya, pada tahun 1990 lahir disk dengan ukuran 3 inci yang dapat menyimpan data sekitar 250 MB, atau biasa disebut juga Zip disk.

8.      World’s first hard drive

                      Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGy5MA_WRLGVNmoBZ3mP4j9Um4Hq67iivyvovy0dcfxg9RsyK2p1hQq36dMS_3k6dWh86scygfYOUJnmqwxjjSJJrYlFhXhLNjXuQExeoD5Bw9s9TMLBu9HqDiUPSCi9AeTWxFqghWQjtV/s1600/hard+drive.png

 Tanggal 13 September 1956, komputer IBM 305 RAMA dalam kondisi tidak terselubungi. Komputer tidak mengalami perubahan sejak dapat menyimpan data sekitar 4.4 MB (setara dengan 5 milyar karakter) – saat itu sudah menjadi hal yang menakjubkan. Data tersimpan dalam 50 buah Magnetic Diks yang berukuran 24 inci. Lebih dari 1000 sistim dibangun dan diproduksi pada akhir tahun 1961. IBM mengeluarkan seharga $3,200 per bulan untuk memproduksi komputer.

 9.      Hard drive

                                                         Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx8G_Big7sMGqsu62PAxownUHQPTtbifVKoXwVQPSxqhuCUQ1qvJwOzyl_9d7QYxBJbpw0QtBL5Wy-l8i_vjtWN49Ks4wF9RHQASK1Vxfph50fM-MGFaZ3_nVtXR6blocQ_HYRuLyvykZI/s1600/hard+drive+new.png
                     
Hard drive masih diproduksi di bawah pengembangan yang tetap (konstan). Hitachi Deskstar 7K yang Anda lihat pada gambar di bawah adalah hard drive pertama kali yang dapat menyimpan data 500GB setara dengan 120.000 World’s first hard drive IBM 305 RAMAC. Hal ini cenderung tiap tahun kita dapat memperoleh drive yang dapat menyimpan data secara cepat dengan harga murah.






10. Laser Disk

                                      Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1kHrpFMr7V1OXz2WY3Zv6oR_2Tkt3PWUCa88VDLg6XLj1466ltF-dkEnmhWFA3zGBJortdm9ig_ntovJhRQsp5FKYUlmRHxvm5EE-NMFt3dk3O3QwqlJ5R0NUfuzfresPhZ5lyQn7_s2j/s1600/laser+drive.png

Tahun 1958, Laser Disk ditemukan namun tidak sampai tahun 1972 untuk pertama kalinya Video Disk didemonstrasikan kepada publik. Enam tahun kemudian, yaitu tahun 1978, sudah tersedia di beberapa pasaran. Hal yang tidak mungkin menyimpan data pada disk, namun mereka dapat menyimpan data dalam bentuk video dan gambar secara signifikan dengan kualitas tinggi lebih canggih dari teknik pada VHS.

11. Compact Disk
                                          Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHQ6Ndg9qqaWw_cV2Fl0z3OuBxEGjEy8xXLBusGjO76sAcZqa4vnKCBeLLPoCOhQM8dEu0qJWkBBIBwfAz4RWR0tsO4oA4-qFIGGG569odWe9pb6YoYWUcBTNpvV-5n5sj__6KZXTSmvwl/s1600/compact+disk.png
Compact disk muncul bermula dari penemuan Laser Disk, namun berukuran lebih kecil. Dikembangkan oleh kerjasama antara SONY dan Philips pada tahun 1979 dan Compact Disk sangat berlimpah di pasaran pada tahun 1982. Sekarang tipe CD dapat menyimpan data sebesar 700MB.

12. DVD
                                                      Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmyvRoaxaAFTUl9L5dwalfgXRkw6ZZtWN1Lt_wJAK-iF74ZdMEOrNDFnLLDS0dfuy8IuONRyhNSI8Lkimo57KP-vdznyA8I0kGbLVJOkUdrDajRFag6wvtn4xFq5vDCx84oCoIOC1J4-fw/s1600/dvd.png
           
DVD (Digital Versatile Disc atau Digital Video Disc) merupakan dasar dari CD menggunakan teknologi laser yang berbeda. Panjang gelombang laser menggunakan 780nm sinar inframerah (standar CD menggunakan 625 nm hingga 650nm sinar inframerah) yang membuatnya memungkinkan menyimpan data pada space yang sama. Dua lapisan DVD dapat menyimpan data sebesar 8.5 GB.



13. MediaPenyimpananMasaDepan

                                                 Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSnYckHY9FthdggFjA2eTco-PF_D32vl6EPQemWdmqq7OrHn2q856ZPTWC5e5nkUrGwzNMqDNZkj-ordsaWXi4d0grqG8b3R2hbhykLJolKVGIDqscnlkZG4A3M5mj8PuzAncmV5jYe0j/s1600/media+penyimpanan+masa+depan.png


Ada beberapa media penyimpanan data modern seperti kartu memori (memory card), kita tidak memiliki hal semacam itu, namun dalam perkembangan masa depan ada kemungkinan me-launching Blu-Ray dan HD DVD – persaingan dua format sebagai pengganti compact disc yang dapat menyimpan data lebih banyak. Apa yang akan Anda ucapkan jika suatu saat memiliki Holographic Versatile Disc (HVD) yang dapat menyimpan data 160 kali lebih banyak dari Blu-Ray Disc. Kemampuan menyimpa data hingga 3.9 TB (Tera Byte) dalam sebuah disk atau secara dengan 4.600 – 11.900 jam menjalankan video menggunakan MPEG4.

D.   Macam-macm Storage,Fungsi dan Cara Kerja

 METODE PENYIMPANAN YANG BERUPA MAGNETIS (MAGNETIC DISCS)


1.Floppy disk
Floppy Disk adalah alat yang biasa disebut dengan disket ini digunakan untuk menyimpan data. Meskipun alat ini murah,namun pada saat ini alat ini kurang diminati orang.Karena alat ini kurang praktis, dan selain itu alat ini kapasitas nya jauh dari storage masa kini.

2.Hard Disk

* Cara kerja hard disk
Hard Disk adalah non-volatile storage device yang menyimpan data secara electronik dengan kapasitas besar (High-capacity storage) yang
dikodekan secara digital pada piring-piring yang berputar cepat dengan permukaan magnetic dan berisi beberapa plat yang keras,dan bundar serta komponen yang menyertai berada dalam wadah yang kedap udara, dan tersegel untuk keamanan.
Hard disk akan merekam data dalam putaran konsentris yang biasa disebut dengan track. Dalam sebuah track ini masih ada pembagian lagi yang disebut dengan sektor. Masing-masing track dalam sebuah disk bisa diibaratkan sebuah buku tempat anda menyimpan tulisan yang tertata rapi dalam sebuah disk. Kalau sistem operasi membutuhkan file yang terletak dalam track dan sektor tertentu maka permintaan tersebut akan diteruskan lewat lengan pengendali head ke posisi track dan sektor tertentu dimana data disimpan.
Saat sistem operasi mengirim data ke hard disk untuk disimpan maka drive pada hard disk akan terlebih dahulu melakukan perhitungan data dengan rumus matematis yang kompleks untuk menambahkan hitungan bit pada sebuah data. Dengan konversi ini maka data bisa disimpan dengan lebih efisien. Selain itu ketika nanti data tersebut dibutuhkan kembali tambahan bit tersebut mampu mendeteksi dan mengkoreksi kesalahan acak karena variasi dari ruangan magnetis yang lebar.
Selanjutnya head akan digerakkan menuju track tertentu di atas disk untuk melakukan baca dan tulis. Waktu yang dibutuhkan untuk memindahkan head dari satu track ke track yang lain inilah yang disebut dengan seek time. Setelah berada pada track yang benar head akan menunggu sampai berada pada sektor tertentu untuk membaca dan menulis data. Untuk menulis data head akan menunggu sampai berada pada sektor yang belum terisi sementara saat membaca head akan menunggu sampai berada pada sektor dimana data disimpan.
Waktu yang dibutuhkan untuk menunggu berada pada sektor yg tepat ini sering disebut sebagai latency. Semakin kecil nilai seek time dan latency maka akan semakin tinggi kinerja sebuah hard disk. Saat head berada pada sektor yang tepat untuk menuliskan data maka sebuah pulsa elektronik akan disalurkan lewat head menuju piringan. Pulsa elektronik tersebut menghasilkan tempat tertentu diatas disk untuk menyimpan data.

  3. Cara kerja disket
Disket dimasukkan ke floppy disk drive, yaitu alat untuk menahan, memutar, membaca, dan menulis data ke disket. “Baca” berarti data di media penyimpan sekunder diubah ke dalam bentuk sinyal elektronik dan salinan data tersebut dikirimkan ke memory komputer (RAM). Sedangkan “tulis” berarti salinan informasi elektronik hasil pemrosesan komputer ditransfer ke penyimpan sekunder.
· Pengunci baca : disket memiliki pengunci baca agar disket tidak bisa ditulisi. Dengan kata lain, data di dalam disket bisa terlindung. Caranya : gunakan jari jempol atau ujung pena untuk memindahkan pengunci baca ke arah bawah (tampak belakang), sehingga lubang kotaknya terbuka.
· Track, sektor, dan cluster : pada disket, data disimpan dalam arah memusat yang dinamakan track. Berbeda dari gramofon, track-track di disket tidak mempunyai alur atau lingkaran tunggal. Track di disket membentuk lingkaran-lingkaran terpusat. Ketika sebuah disk diformat, lokasi penyimpan terbagi menjadi sektor-sektor arah tertentu sehingga track-track di disket terbagi dalam beberapa busur yang dinamakan sektor. Saat data dari komputer disimpan ke disket, data kemudian disebarkan ke track-track dan sektor. Oleh sebab itu, perangkat lunak sistem menggunakan titik irisan sektor dan track sebagai penunjuk lokasi data. Unit terkecil ruang disk sebagai tempat penyimpan data dinamakan cluster. Cluster adalah sekumpulan sektor pada alat penyimpan. Istilah track, sektor, dan cluster juga dipakai di hardisk (akan dibahas kemudian).
· Head baca/tulis : ketika disket dimasukkan ke slot (drive gate atau drive door) pada bagian depan floppy drive, disket ditempatkan di atas kumparan mekanisme drive. Head baca/tulis digunakan untuk mentransfer data antara komputer dan disket. Saat disket berputar di dalam plastik pembungkus, head baca/tulis bergerak maju mundur melalui area akses data di disket. Dan saat disket tidak berada di drive, penutupnya yang terbuat dari logam atau plastik berfungsi untuk menutupi area akses data tersebut. Lampu akses akan menyala ketika disket sedang bekerja. Selesai memakai disket, Anda bisa mengambilnya dengan cara menekan tombol keluar di samping drive.
                                Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFBBF1e-5f9WDr0zCtfqUt2QwWclTQevRLx1ph43BDBN4RbPPZTZ9uwe1KT-vf6owMVfNoq56pV42Vg5KnVwd56l_9Mt8BY31KzVj5k8jWiSTCiKlqYRvi9Waqw9F5fVi7Sc81QYVYMTOc/s320/floppy35.gif
4.Zip Disk
Zip Disk contoh alternatif penyimpan adalah floppy disk cartridge—disket yang berkapasitas lebih besar, misalnya Zip disk. Diproduksi oleh Iomega Corp., Zip disk adalah disk berlapis magnetik berkualitas tinggi yang memiliki kapasitas sebesar 100, 250 bahkan 750 megabyte. Untuk ukuran 100 megabyte saja, kapasitasnya telah melampaui 70 kali kapasitas disket biasa. Zip disk memerlukan zip disk drive tersendiri, meskipun telah tersedia pula drive zip external (biasanya versi USB). Zip disk dimanfaatkan untuk menyimpan file spreadsheet, file database, file gambar, file presentasi multimedia, dan file-file situs web yang berukuran besar.

5.Removable Hard Disk dan External Hard Disk

Pada dasarnya kedua alat ini sama fungsinya,adalah storage yang hampir sama juga fungsinya dengan Zip Disk, yaitu digunakn untuk mem back up data. Apabila data asli hilang maka dapat di ambil lagi melalui Removable Hard Disk atau External Hard Disk

6.Flash Memory

   USB Flash
Flash Memory adalah alat yang bersifat Non-Volatile, digunakan dalam kartu memori dan USB flash drive untuk penyimpanan umum dan mentransfer data antara komputer dan produk digital lainnya. Karena flash memory adalah non-volatile, tidak ada kekuatan yang diperlukan untuk mempertahankan informasi yang tersimpan dalam chip. Fitur lain dari memori flash adalah bahwa ketika dikemas dalam "kartu memori," hal itu adalah sangat tahan lama, mampu menahan tekanan, temperatur ekstrem, dan bahkan tenggelam dalam air. Storage defvice ini tidak asing lagi, karena alat ini sangat umum ddigunakan.Contohnya seperti Flash Disk, di era global saat ini siapa yang tidak tahu alat itu, semua sangat mengenalnya.Bentuknya sangat praktis, bisa dibawa kemana mana, adapun cara kerjanya yaitu hanya dimasukkan ke USB, kemudian didalam nya di proses, dan transver atau menyimapan data dapat dilakukan, sangat simple.

Banyak sebutan untuk Flash Memory yang satu ini. Ada yang juga menyebutnya Thumb Drive, USB Disk, dan masih banyak lagi. USB Flash memiliki jack USB langsung terpasang padanya. Dan ukurannya sangat kecil, sampai sekecil ibu jari Anda.
Bila semua floopy disk dilengkapi dengan proteksi data, tidak demikian halnya dengan USB Flash. Tidak semua USB Flash dilengkapi dengan proteksi data. Oleh sebab itu bagi Anda yang menginginkan proteksi pada USB Flash, tidak ada salahnya jika Anda memeriksa terlebih dahulu sebelum membelinya.
Untuk mengakses data yang disimpan dalam flash drive, drive harus terhubung pada komputer, dengan cara memasukkannya kepada USB. Flash drives hanya aktif ketika dimasukkan ke sambungan USB dan mendapatkan tenaga dari persediaan yang didapat dari hubungan itu
Komponen Flash Drives
1 USB connector
2 USB mass storage controller device
3 Test points
Untuk pengujian selama flash drive sedang me-load kode ke mikroprosesor.
4 Flash memory chip
5 Crystal oscillator
6 LED
Indikasi transfer data
7 Write-protect switch
indicate whether the device should be in “write-protection” mode.
8 Space for second flash memory chip
tempat untuk menambahkan chip memory yang lain, sehingga kita bisa menambah kapasitas dari flash drives.
Kelebihan USB Flash
  • kelebihan Flash drives lebih tahan  terhadap goresan dan debu, yang merupakan masalah utama pada teknologi media penyimpanan sebelumnya, seperti compact discs dan floppy disks. Flash drives juga memiliki kapasitas yang lebih besar, bahkan sudah ada yang melebihi kapasitas DVD.
  • Kelebihann Tenaga yang dikonsumsi flash drive sangat rendah.
  • Kelebihann OS yang modern sudah bisa membaca dan menulis di Flash drives USB mass storage device class, tanpa harus menggunakan Disk Driver.
  • Kelebihann Flash drives lebih toleran terhadap kesalahan dalam penggunaan dibandingkan dengan mechanical drives yang lain.
Beberapa flash drives bisa menjaga memory-nya walaupun setelah masuk ke dalam air, bahkan mesin cuci. Diamkan Flash drives sampai kering benar sebelum digunakan kembali.
Kekurangan USB Flash
  • Meskipun bentuknya yang solid, bukan berarti memory tersebut memiliki daya tahan abadi. Umumnya, memory yang tersusun dari gerbang-gerbang transisitor ini memiliki kemampuan dari 10.000 sampai 100.000 kali penghapusan.
  • Kebanyakan Flash Drives tidak memiliki write-protect mechanism.
  • Karena ukurannya yang kecil, bisa membuat kita kebingungan untuk mencarinya ketika kita lupa menaruhnya.

METODE PENYIMPANAN YANG BERUPA OPTIS (OPTICAL DISCS)

Dalam metode ini alat nya adalah berupa piringan yang terbuat dari plastic mika,yang dimana di dalamnya terdapat data file informasi.

Adapun prosesnya adalah piringan yang berisi informasi dimasukkkan ke dalam prosesor, dan kemudian permukaan disc melingkar dibaca oleh prosesor tadi, melalui penerangan menerangi permukaan pada piringan tadi dengan dioda laser dan diamati refleksi oleh Magneto-optical disc cakram optik penyimpanan. Dimana Magneto-optical disc cakram optik penyimpanan adalah penyimpanan di mana negara magnetik pada permukaan ferromagnetic menyimpan informasi. Informasi dibaca secara optik dan ditulis dengan menggabungkan metode magnetik dan optik. Magneto-optical disk penyimpanan non-volatile, sekuensial akses, lambat menulis, membaca cepat digunakan untuk penyimpanan tersier dan off-line storage. Sehingga nanti informasi didalam piringan tadi dapat terbaca.Cakram optik penyimpanan non-volatile. Mungkin deformitas permanen (hanya membaca media), dibentuk sekali (menulis sekali media) atau reversibel (recordable atau baca / tulis media). Bentuk berikut saat ini umum digunakan.

Contoh nya:

a)   CD, CD-ROM, DVD, BD-ROM: Baca hanya penyimpanan, digunakan untuk distribusi massa informasi digital (musik, video, program komputer).
b)   CD-R, DVD-R, DVD + R BD-R: Write sekali penyimpanan, digunakan untuk tersier   dan off-line storage.
c)   CD-RW, DVD-RW, DVD + RW, DVD-RAM, BD-RE: Lambat menulis, membaca cepat penyimpanan, digunakan untuk tersier dan off-line storage.
d)  Ultra Density Optical atau Udo mirip kapasitas untuk BD-R atau BD-RE dan lambat menulis, membaca cepat digunakan untuk penyimpanan tersier dan off-line storage.
e)   Picture CD : alat yang digunakan biasanya dalam pengeditan film dengan manggunakan software tertentu, kemudiian disimpan didalamnya.

 TAPE

Storage yang berbentuk besar dan harganya cukup terjangkau pabila kita ingin menyimpan data dalam kapasitas yang besar, selain itu juga digunakan untuk mem back up data yang hilang atau membaca file music tape. Pada dasarnya alat ini digunakan untuk menyimpan informasi .
Cara Kerjanya :
Data direkam secara digit pada media tape sebagai titik-titik magnetisasi pada lapisan ferroksida. Magnetisasi positif menyatakan 1 bit, sedangkan magnetisasi negatif menyatakan 0 bit atau sebaliknya.

PC CARDS.

Suatu storage yang digunakan dalam computer untuk menambahkan kekuata/kesepatan pada computer. Storage ini berbentuk mini, yang pada umumnya dipakai oleh notebook. Contohnya pada RAM, Flas Memory, dsb.











































B. Materi Indexing
    INDEXING
 Index  adalah struktur data yang mengatur record data pada disk untuk mengoptimalkan beberapa jenis operasi pengambilan (retrieval) tertentu .
•  Index memungkinkan kita  untuk  secara  efektif  mengambil semua record yang memenuhi syarat pencarian pada field search key dari index.
•  Memungkinkan untuk membuat index tambahan pada kumpulan record data tertentu, masing– masing dengan search key yang berbeda untuk mempercepat operasi pencarian yang tidak didukung secara efisien  oleh organisasi file yang digunakan untuk menyimpan record data .
Membuat Index (CREATE INDEX)

Query :

CREATE INDEX nama_index ON nama_tabel(nama_field1, nama_field2,….);

Contohnya :
SQL>CREATE INDEX mahasiswa_idx ON mahasiswa(nim, nama, alamat );

Memodifikasi Index (CREATE INDEX)

Query :


ALTER INDEX nama_index
       [INITRANS integer]
       [MAXTRANS integer]
       [STORAGE storage_clause]
 

           
Contoh :
           
SQL > ALTER INDEX mahasiswa_idx INITRANS 10;

Mengubah Nama Index

Queri :


ALTER INDEX nama_index_lama RENAME TO nama_index_baru;


contoh :


ALTER INDEX mahasiswa_idx RENAME TO mhs_idx;


Menghapus Index (CREATE INDEX)

Query :


DROP INDEX nama_index;

       
    
Contoh :

SQL > DROP INDEX mahasiswa_idx;


Segmen Index

Segmen indeks dibuat ketika indeks diciptakan. Untuk setiap indeks non-partisi akan terdapat satu segmen indeks sedang pada indeks terpartisi, setiap partisi memiliki satu segmen indeks. Pada saat indeks dibuat melalui perintah create index, proses server melakukan operasi sort nilai data yang diindeks sebelum berubah menjadi segmen indeks.

Segmen indeks tidak harus berada dalam satu tablespace yang sama dengan segmen datanya. Script di bawah membuat tablespace khusus untuk menampung indeks yang terpisah dengan segmen data.



--MEMBUAT SEGMEN INDEKS
SQL> CREATE TABLESPACE personal_index DATAFILE 
2             ‘E:\ORACLE\ORADATA\T3TAN\personal_index.ORA’
3             SIZE 12M REUSE AUTOEXTEND ON
4      NEXT 128K MAXSIZE 100M
5      EXTENT MANAGEMENT LOCAL;

SQL> CREATE INDEX ferry.notes_id
2      ON ferry.notes(A)
3             TABLESPACE personal_index PCTFREE 40 INITRANS 4
4             STORAGE (INITIAL 16384 NEXT 8192 PCTINCREASE 0);

SQL> SET HEADING OFF
SQL>COL hdg FOLD_BEFORE
SQL>SELECT    ‘Ukuran bytes :  ’ hdg, bytes,
2             ‘Jumlah Blok  :  ’ hdg, blocks,         
3             ‘Jumlah Extents      :  ’ hdg, extents,
4             ‘Initial Extent      :  ’ hdg, initial_extents,                 
5             ‘Min Extent   :  ’ hdg, min_extent,
6             ‘Max Extent   :  ’ hdg, max_extent,
7             ‘Free List    :  ’ hdg, freelist,
8             ‘Free List Group     :  ’ hdg, freelist_group,
9             ‘Header       File  :  ’ hdg, header_file,
10            ‘Header Block :  ’ hdg, header_block,
11            ‘Tipe Segmen  :  ’ hdg, tipe_segmen,           
12     FROM dba_segments
13          WHERE    segment_name=’NOTES_ID’;

Ukuran bytes  :      589824
Jumlah Bit    :      72
Jumlah Extent :      9
Initial Extent       :      16384
Min Extent    :      1
Max Extent    :      2117483645
Freelist             :      1
Freelist Group       :      1
Header File   :      19
Header Block  :      9
Tipe Segmen   :      INDEX

SQL> SET HEADING ON
SQL> SELECT extent_id, block_id, bytes, blocks
2      FROM dba_extents
3      WHERE segment_name= ‘NOTES_ID’

EXTENT_ID        LOCK_ID           BYTES  BLOCKS
    0                9             65536     8
    1               17             65536     8
    2               25             65536     8
    3               33             65536     8
    4               41             65536     8
    5               49             65536     8
    6               57             65536     8
    7               65             65536    8
    8               73             65536     8

Tablespace untuk indeks ditentukan melalui statement pembuatan indeks dan parameter storage dapat disertakan untuk menetapkan karakteristik extent dari suatu segmen indeks. Tampak bahwa indeks pada tabel notes dengan kunci indeks kolom A mempersiapkan 9 extent dengan total 72 blok data.

Menentukan Indeks

Developer membuat indeks agar unjuk kerja aplikasi lebih baik. Perintah create index menghasilkan indeks dengan entry berupa nilai data yang diperoleh dari suatu kolom tunggal, gabungan beberapa kolom, ekspresi, dan fungsi.
Ketika bekerja dengan indeks disarankan untuk mengacu pada kolom-kolom yang diindeks agar meningkatkan performansi join  tabel, buatlah indeks dengan urutan kolom-kolom tabel yang tepat atau yang sering digunakan pada klausa where agar indeks digunakan untuk pencarian row. Pada pembuatan primary dan unique key secara otomatis akan dihasilkan indeks, begitu juga ketika primary dan unique key itu dihapus maka indeksnya secara otomatis dihapus. Untuk menghindari proses pembuatan indeks secara otomatis itu buatlah terlebih dahulu indeks non-unik berdasarkan primary key dan unique key. Selain itu buatlah juga indeks pada foreign key.
Kolom yang dipilih sebagai bagian dari indeks sebaiknya mengandung nilai data yang unik atau kolom yang sering digunakan dalam klausa where. Jika perbedaan nilai data dari suatu atau beberapa kolom sangat bervariasi, gunakan indeks B-Tree. Sedangkan untuk nilai data yang kurang bervariasi gunakan bitmap.

Ekspresi Tunggal

Indeks ini menggunakan satu kolom sebagai kunci indeksnya. Misalnya untuk kemudahan akses data penduduk menurut nama penduduk dilakukan dengan perintah create index penduduk on kependudukan(upper(nama)).

Ekspresi Gabungan

Indeks ini dikenal juga sebagai concatenated atau composite index yaitu indeks yang menggunakan beberapa kolom suatu tabel untuk membentuk indeks  entry. Jumlah kombinasinya dapat dibuat hingga 32 kolom namun dalam prakteknya penggunaan lebih dari lima kolom jarang digunakan.
Anggaplah terdapat suatu tabel kependudukan yang terdiri dari kolom kabupaten, kecamatan, kelurahan, serta beberapa kolom untuk entitas penduduk. Apabila tabel itu diindeks, kunci indeksnya bisa berupa create index pddk_ix on penduduk (kab, kec, kel, nama). Dengan demikian susunan indeks entrinya diurutkan menurut kabupaten, kecamatan, kelurahan, dan nama penduduk. Untuk memanfaatkan indeks, query harus dilakukan dengan memperhatikan susunan kondisi klausa where, misalnya select * from penduduk where kab=’PNK’ and kec=’SEL’ and kel=’BANGKA’.

Jenis-jenis Indeks

Untuk performansi query Oracle mendukung penerapan indeks B-Tree yang merupakan indeks default, indeks bitmap untuk kumpulan key yang cardinality-nya rendah, indeks pada cluster B-Tree dan hash, indeks global dan lokal untuk partisi tabel, indeks reverse key pada aplikasi real application cluster (RAC), indeks function-based pada key yang berupa ekspresi atau fungsi, serta indeks domain untuk aplikasi atau cartridge.

1.         Indeks B-Tree

Indeks ini menyimpan key dan rowid pada struktur B-Tree untuk menangani transaksi dengan intensitas tinggi dan cocok digunakan pada kolom-kolom tabel dengan cardinality tinggi atau mengandung nilai data yang sangat beragam. Ketika transaksi berlangsung, nilai data pada tabel dan pohon indeks diperbarui. Apabila terjadi query, rowid yang digunakan untuk menemukan letak row data dalam tabel dicari pada indeks. Jadi pada indeks ini rowid untuk setiap key dari masing-masing row tabel akan disimpan dalam indeks.
Perintah create index boy.kar_idx on boy.karyawan (nik) akan menghasilkan indeks B-Tree dan cocok untuk menangani transaksi OLTP karena update terhadap kolom yang dindeks dapat berlangsung secara cepat melalui penerapan penguncian pada level row.

2.      Indeks Bitmap

Berbeda dengan indeks B-Tree yang secara default menyimpan rowid, indeks bitmap menyimpan suatu bitmap untuk setiap nilai kunci pada node leaf. Bitmap itu merupakan pengenal yang disusun oleh sejumlah bit dan dipetakan ke rowid. Jika bitnya diset, berarti baris dengan sejumlah rowid yang bersesuaian mengandung nilai key.
Indeks bitmap sangat efektif untuk query yang mengandung banyak kondisi pada klausa where dengan and dan or karena operasi itu secara langsung membandingkan bitmap sebelum mengkonversi bitmap ke rowid. Indeks ini menggunakan space yang lebih kecil dan cocok untuk hardware dengan prosesor dan memori yang terbatas. Indeks bitmap cocok untuk menangani data berukuran besar dengan tingkat transaksi kecil atau pada lingkungan data warehouse serta kolom-kolom dengan cardinilty rendah. Namun mungkin saja DBA membuat indeks bitmap pada kolom dengan cardility yang tinggi untuk lingkungan data warehouse. Untuk data warehouse dengan star schema gunakan indeks bitmap join yang merupakan fungsionalitas baru di Oracle10g. Jika kolom pada dimension table digunakan untuk membatasi data yang dipilih dari fact tabel (dengan foreign key) dan n dimension tabel (dengan primary key), indeks bitmap join bisa menghindari operasi join antartabel tersebut.
Cardinality rendah merupakan kolom dengan nilai data berulang atau kolom yang perbedaan nilai datanya sangat kecil dibandingkan jumlah row-nya. Cardinality dapat dilihat pada tabel karyawan berikut ini.

NIK
Nama
Kelamin
Status
Dept
100
Goge
Laki-laki
Menikah
02
101
Titin
Perempuan
Janda
01
102
Beni
Laki-laki
Belum Menikah
03
103
Joel
Laki-laki
Duda
05
104
Susan
Perempuan
Menikah
03


Kolom kelamin, status, dan memiliki cardinality rendah karena itu tepat untuk menggunakan indeks bitmap misalnya create index boy.kar_depix bitmap on boy.karyawan(dept); sedangkan nik dan nama memiliki cardinality tinggi sehingga indeks B-Tree dapat diterapkan.

3.      Indeks Reverse

Jika dibandingkan dengan indeks B-Tree, indeks reverse key membalik (reverse) byte setiap kolom yang diindeks (kecuali rowid) dan mempertahankan urutan kolomnya agar perubahan dapat disebar pada beberapa block indeks.  Misalnya jika nilai suatu kolom yang diindeks adalah 1234 maka indeks reverse menggunakan angka 4321 agar pemutakhiran pohon indeks tersebar pada beberapa leaf blok. Oleh karena itu indeks ini cocok digunakan jika kolom-kolom yang diindeks memiliki nilai data yang berurutan atau mirip. Indeks ini digunakan pada real application cluster (RAC) di mana perubahan indeks dilakukan pada kumpulan blok leaf yang kecil. Dengan me-reverse key yang diindeks maka  insert akan tersebar pada berbagai leaf suatu pohon indeks.

—MEMBUAT INDEKS REVERSE.

SQL> CREATE INDEX sales_wiltglstok ON 
2      sales (wilayah, tgl, stok) COMPRESS REVERSE;

SQL> ALTER INDEX sales_wiltglstok REBUILD;

--Mengubah indeks reverse menjadi noreverse
SQL> ALTER INDEX sales_wiltglstok REBUILD NOREVERSE;


Perintah pertama membuat reverse indeks, sedangkan perintah kedua melakukan rebuild indeks. Apabila indeks ini akan diubah ke mode default, gunakan klausa NOREVERSE untuk menormalkan pola penyimpanan key pada pohon indeks.
Pencarian data dengan range-scanning tidak dapat diterapkan pada reverse indeks karena kunci indeks tidak lagi disimpan secara berdekatan sehingga pengambilan data hanya dapat dilakukan melalui key yang ditentukan atau full-table scan.

4.      Indeks Fungsi

Indeks ini menggunakan fungsi (funtion-based index) untuk mendefinisikan kunci indeksnya.

—MEMBUAT INDEKS FUNGSI.

SQL> CREATE INDEX nama_ix ON penduduk(UPPER(nama));

SQL> CREATE INDEX idx1 ON stat_sales(funcsal);

--Menghasilkan statistic index 
SQL> ANALYZE INDEX idx1 VALIDATE STRUCTURE;



Perintah pertama menghasilkan indeks entry dengan mengkapitalkan nama penduduk melalui fungsi built in upper. Pada contoh kedua digunakan  fungsi PL/SQL. funcsal yang harus ditentukan deterministic  dan parameter inisialisasi QUERY_REWRITE_ENABLED, QUERY_REWRITE_INTEGRITY bernilai TRUE dan TRUSTED. Tabel stat_sales itu dapat dianalisa setelah indeks dibuat dan query harus tidak memerlukan nilai null.


Menghindari Duplikasi Data

Indeks mengorganisasikan row sehingga kolom-kolom yang digunakan sebagai kunci indeks menyimpan nilai kolom yang ditentukan dalam ekspresi indeksnya. Pada indeks dengan ekspresi tunggal maupun composite di atas, penataan entitas penduduk memungkinkan adanya indeks entri yang sama. Agar indeks memelihara keunikan penduduk sehingga tidak ada duplikasinya, gunakan klausa UNIQUE pada ekspresi indeksnya. Misalnya create unique index pddk_uq on penduduk(ktp). Indeks ini memastikan tidak adanya duplikasi row sehingga bisa menjadi kandidat untuk primary key.

Keputusan Rebuild Indeks

Pemeliharaan indeks untuk membuat ulang (rebuild) indeks dilakukan melalui perintah alter index…rebuild. Jika terjadi korupasi indeks, mungkin saja rebuild indeks tidak berhasil karena masih ada korupsi indeks setelah proses rebuild. Untuk kasus ini, drop index kemudian create index yang dihapus tersebut.
Jika operasi DML sering dikerjakan, indeks suatu tabel mungkin tidak tersebar secara merata pada pohon indeks. Oleh karena itu perlu pengecekan untuk menentukan bilamana indeks perlu direbuild.



—MEMERIKSA BRANCH LEVEL INDEKS B-TREE.

--Ambil statistik indeks
SQL> ANALYZE INDEX tes_idx_idx COMPUTE STATISTICS;
Index Analyzed

--Cek BLevel
SQL> SELECT index_name, blevel, DECODE(blevel,0,’OK BLEVEL’, 1,’OK BLEVEL’, 2,’OK BLEVEL’, 3,’OK BLEVEL’, 4,’OK BLEVEL’,’BLEVEL HIGH’) keterangan
FROM dba_indexes
WHERE owner=’BOY’ ORDER BY bleave;
INDEX_NAME                        BLEVEL KETERANGAN
BUDVERPORT_ORG_FK_I                  0   OK BLEVEL
SKS_C006134                          0   OK BLEVEL    
BUDVERPORT_BUDVERIORT2_UK            1   OK BLEVEL
BUDVERPORT_PL_TITLE_FK_I             1   OK BLEVEL
BUDVERPORT_BV_FK_I                   2   OK BLEVEL
BUDVERPORT_DIRCTE_FK_I               3   OK BLEVEL
S_WAREHOUSE_ID_FK                    4   OK BLEVEL
TES_IDX_IDX                          5   BLEVEL HIGH
A1_PP                                    BLEVEL HIGH
A1_UK                                    BLEVEL HIGH
S_ITEM_ORDID_ PRODID_UK                  BLEVEL HIGH

BLEVEL pada data dictionary DBA_INDEXES adalah B-Tree level atau branch level yang menunjukkan kedalaman atau level indeks dari node root. Level nol menunjukkan node root dan node leaf yang sama. Jika nilai blevel lebih dari empat maka direkomendasikan untuk me-rebuild indeks. Nilai blevel diperoleh setelah indeks dianalisa sehingga nilai blevel yang kosong atau keterangan BLEVEL HIGH menunjukkan indeks yang belum dianalisa. Untuk itu indeks tes_idx_idx dengan blevel 5 perlu di-rebuild dengan perintah alter index tes_idx_idx rebuild.

Rebuild Indeks Online

Oracle10g index nama_idx remendukung rebuild indeks dan pembuatan statistiknya secara online dengan perintah alter index nama_idx rebuild compute statistics online. Pada versi terdahulu proses itu melibatkan statement  alter index nama_idx rebuild online dan alter index nama_idx rebuild compute statistics. Mulai Oracle10g, proses tadi dapat dilakukan pada indeks reverse key, function-based maupun indeks reguler dan IOT.
Peningkatan itu memungkinkan user untuk tetap mengakses indeks sementara rebuild dan statistik indeks dibuat. Opsi online memperbolehkan operasi DML pada tabel atau partisi berlangsung sementara pembuatan indeks dan statistik dikerjakan. Setelah rebuild selesai, indeks yang lama di-drop. Jika opsi online tidak disertakan maka tabel akan dikunci hingga proses rebuild indeks berakhir. Jika digunakan opsi online nologging maka informasi redo tidak dihasilkan.

Keputusan Mengubah Indeks

Perbedaan nilai data kolom (cardinality) yang diindeks juga dapat menjadi acuan untuk keputusan me-rebuild indeks atau mengubah jenis indeks.

—CARDINALITY INDEKS.

SQL> ANALYZE INDEX boy.tes_idx_idx VALIDATE STRUCTURE;
Index Analyzed

SQL> SELECT del_lf_rows *100/
2                    DECODE(lf_rows, 0,1,lf_rows) PCT_DELETED,
3      (lf_rows – distinct keys) *100/
4             DECODE(lf_rows,0,1, lf_rows) DISTINCTIVENESS
5      FROM index_stats
6           WHERE NAME=’&index_name’;
Enter value for index_name: TES_IDX_IDX
Old    6:     WHERE NAME=’&index_name’
New    6:     WHERE NAME=’TES_IDX_IDX’

PCT_DELETED DISTINCTIVENESS
----------- ---------------
16.7724777    910.9142073


Kolom pct_deleted menunjukkan persentase leaf (index entry) yang telah dihapus dan masih belum diisi. Semakin banyak persentasenya , pohon indeks menjadi tidak balance. Sebagai acuan jika pct_deleted bernilai di atas 20 persen, indeks itu perlu di-rebuild. Namun angka di atas 10 persen juga dapat dijadikan dasar untuk me-rebuild indeks lebih sering.
Kolom distictiveness menunjukkan seberapa sering suatu nilai kolom yang diindeks berulang. Misalnya jika suatu tabel memiliki 10000 row dan ada 9000 variasi nilai untuk kolom yang diindeks maka berdasarkan formula script di atas diperoleh hasil 10. Angka ini menunjukkan distribusi yang baik untuk indeks. Jika untuk 10000 row hanya terdapat variasi dua nilai data maka diperoleh hasil 99,98. Ini berarti hanya sedikit variasi nilai data terhadap seluruh yang ada pada kolom yang diindeks. Kolom ini bukan merupakan calon untuk proses rebuild indeks tetapi sebaiknya dibuatkan indeks bitmap.

Sumber informasi

Keberadaan indeks dapat diketahui dengan mengakses data dictionary DBA_IND_CLOUMNS berikut ini:

--MENGAMBIL INFORMASIINDEKS.


SQL> SELECT index_name, index_type, status
2      FROM dba_indexes
3             WHERE owner=’BOY’;

INDEX_NAME                 INDEX_TYPE           STATUS
------------------------------------------------
PEG_DEP_REVERSE             NORMAL/REV           VALID
KAR_DEP_BITMAP             BITMAP               VALID
KOTA_PENDUDUK_NDX          CLUSTER              VALID
NAMA_IX                    FUNTION-BASED NORMAL VALID
PK_PELATIHAN               IOT-TOP              VALID
PROD_IDX                   NORMAL               N/A
SYS_C002976                NORMAL               VALID
SYS_I00000033455C00002$$   LOB                  VALID
TES_IDX_IDX                NORMAL               VALID

SQL>SELECT index_name, table_name, column_name
2      FROM dba_ind_columns
3      WHERE index_owner=’BOY’
4      ORDER BY table_name;

INDEX_NAME           TABLE_NAME           COLUMN_NAME
---------------------------------------------------
SYS_C002985          DAFKURSUS            SYS_NC0000600007$
SYS_C002986          DAFKURSUS            SYS_NC_OID$
SYS_IOT_TOP_33369    EMPSUS_TAB           NESTED_TABLE_ID SYS_IOT_TOP_33369    EMPSUS_TAB           NO
PEG_DEP_REVERSE      PEGAWAI              DEPT_NO
KAR_DEP_BITMAP       KARYAWAN             DEPT_NO
SYS_C003094          PRODUKSI_RANGE       NIK
PROD_IDX             PRODUKSI_RANGE       TGL
TED_IDX_IDX          TES_IDX              A1

SQL>SELECT o.object name
2      FROM sys.dba_objects o
3      WHERE owner = ‘BOY’ AND o.object_id
4      IN (SELECT i.obj# FROM sys.ind$ I WHERE
5             BITAND(i.property,4)=4);

OBJECT_NAME
-----------------------------------------------------
PEG_DEP_REVERSE     
      

Partisi Indeks

Seperti halnya table, indeks dapat juga dipartisi. Table terpartisi dapat menggunakan indeks terpatisi maupun indeks non-partisi. Demikian pula sebaliknya suatu table non-partisi dapat menggunakan indeks terpartisi maupun indeks non-partisi.

Indeks Global

Indeks global dapat dipartisi secara range dan cocok digunakan untuk mengakses row secara OLTP. Pada partisi indeks global terdapat batas partisi misalnya maxvalue. Penambahan partisi pada indeks global tidak bisa dilakukan karena partisi tertinggi telah dibatasi dengan maxvalue. Untuk tujuan itu, partisi harus dibagi melalui statement alter index…split partition.

—MEMBUAT INDEKS GLOBAL.


SQL> CREATE INDEX prod_idx ON produksi_range(tgl)
 2     GLOBAL PARTITION BY RANGE(tgl)
 3       (PARTITION prod1_idx VALUES LESS THAN(
 4       TO_DATE(’01-11-2003’,’DD-MM-YYYY’)),
 5         PARTITION prod2_idx VALUES LESS THAN (MAXVALUE));
Index created

Setiap partisi indeks itu diberi nama dan disimpan pada tablespace indeks default. Agar pemutakhiran indeks global selalu dilakukan, sertakan klausa update global indexes pada setiap statement yang melibatkan operasi DDl pada partisi.

Indeks Lokal

Partisi indeks local umumnya digunakan pada lingkungan data warehouse atau decision support system (DSS) dimana setiap partisi table berhubungan dengan satu partisi indeks local. Untuk lingkungan OLTP dapat digunakan indeks local yang unik dengan ketentuan bahwa partition key suatu table harus merupakan kunci bagi indeks tersebut.
Suatu partisi indeks local bersifat independen sehingga status unusable suatu indeks local tidak mempengaruhi status indeks local lainnya. Penambahan partisi pada indeks local tidak bisa dibuat secara eksplisit tetapi dihasilkan ketika suatu partisi baru ditambahkan. Demikian pula sebalikny, drop partisi dari indeks local hanya dapat dilakukan ketika partisi tablenya di-drop. Indeks local dibentuk menurut struktur table dasarnya dan bersifat equipartitioned sehingga indeks local dipartisi menurut kolom yang sama dengan table dasarnya dan menggunakan jumlah partisi atau subpartisi yang sama pula.

Mengidentifikasi Indeks Unused

Indeks mempercepat pembacaan data dengan mengambil rowid dari phon indeks untuk selanjutnya mengambil data di table. Jika pada table terjadi perubahan data dari kolom yang diindeks maka pohon indeks harus dimutakhirkan. Suatu table dapat memiliki beberapa indeks dan mungkin saja dari sekian indeks itu terdapat indeks yang sebenarnya tidak digunakan. 
Oracle10g dapat mendeteksi bilamana suatu indeks sedang digunakan atau tidak diperlukan berdasarkan waktu yang digunakan. Indeks yang tidak digunakan harus di-drop karena menambah overhead. Untuk mengamati indeks gunakan perintah alter indeks nama_indeks monitoring usage. Setelah anda yakin bahwa dalam selang waktu tertentu operasi yang melibatkan indeks pasti sudah dilakukan, hentikan pemantauan indeks dengan alter indeks nama_indeks nomonitoring usage.



—MEMANTAU INDEKS UNUSED.

--Buat table
SQL> CREATE TABLE kanwil (kode NUMBER(5), nama VARCHAR2(10));
SQL> INSERT INTO kanwil VALUES (1,’KANWIL I’);
SQL> INSERT INTO kanwil VALUES (2,’KANWIL II’);
SQL> INSERT INTO kanwil VALUES (3,’KANWIL III’);
SQL> INSERT INTO kanwil VALUES (4,’KANWIL IV’);
SQL> COMMIT;

--Buat indeks primary key
SQL> ALTER TABLE kanwil ADD(
  2   CONSTRAINT kanwil_pk PRIMARY KEY (kode));
Table altered.
--Monitoring indeks belum bekerja
SQL> SELECT index_name, monitoring, used,
  2         start_monitoring, end_monitoring
  3     FROM v$object_usage;
No row selected
--Aktifkan monitoring indeks
SQL> ALTER INDEX kanwil_pk MONITORING USAGE;
Index altered.
--Monitoring indeks diaktifkan
SQL> SELECT index_name, monitoring, used,
  2         start_monitoring, end_monitoring
  3     FROM v$object_usage;
INDEX_NAME     MONITORING    USED    START_MONITORING       END_MONITORING
-----------   ------------  ------   ------------------     -----------------
KANWIL_PK      YES           NO       01/31/2004 01:30:16
--Buat table PLAN_TABLE jika belum ada.
SQL> @D:\ora9i\rdbms\admin\ut1xplan.sql
--Tracing rencana eksekusi
SQL> SET AUTOTRACE ON EXPLAIN
SQL> SELECT * FROM kanwil WHERE kode =1;
      KODE  NAMA
----------  ------------
1     KANWIL I
Execution  Plan
-------------------------------------------------------------------------------
0             SELECT STATEMENT Optimizer=CHOOSE
1             0  TABLE ACCESS (BY INDEX ROWID) OF ‘KANWIL’
2             1       INDEX (UNIQUE SCAN) OF ‘KANWIL_PK’ (UNIQUE)
SQL> SET AUTOT OFF
--Jalankan query
SQL> SELECT * FROM kanwil WHERE kode =1;
SQL> SELECT index_name, monitoring, used,
   2     start_monitoring, end_monitoring
3             FROM v$object t_usage;
INDEX_NAME     MONITORING    USED    START_MONITORING       END_MONITORING
-----------   ------------  ------   ------------------     -----------------
KANWIL_PK      YES           YES      01/31/2004 01:45:47
--Akhiri monitoring indeks
SQL> ALTER INDEX kanwil_pk NOMONITORING USAGE;
Indes altered.
SQL> SELECT index_name, monitoring, used,
  2         start_monitoring, end_monitoring
  3     FROM v$object_usage;
INDEX_NAME     MONITORING    USED    START_MONITORING       END_MONITORING
-----------   ------------  ------   ------------------     -----------------
KANWIL_PK      NO           YES       01/31/2004 01:45:47    01/31/2004 01:47:07


View dictionary V$OBJECT_USAGE berisi informasi indeks yang dimonitor untuk mengetahui indeks yang telah digunakan. Jika kolom used bernilai yes maka indeks pernah digunakan selama selang waktu tertentu berdasarkan kolom start_monitoring dan end_monitoring. Kolom monitoring bernilai yes jika monitoring indeks sedang berlangsung dan berakhir setelah perintah monitor menghentikan monitor indeks  dijalankan.

Untuk memantau indeks dalam ruang lingkup database maka perintah alter index…monitoring usage harus dilakukan bagi setiap nama indeks. Untuk itu perlu dibuat script yang menghasilkan statement tersebut dengan membaca data dictionary DBA_INDEXES baik script untuk memulai maupun menghentikan monitoring indeks.


—MEMERIKSA INDEKS UNUSED SCOPE DATABASE.

--Buat file script untuk start monitor indeks
SQL> SPOOL D:\STARTMONITOR.SQL
SQL> SELECT ’ALTER INDEX  ||OWNER||
  2         ‘.’||INDEX_NAME||’MONITORING USAGE;’
  3     FROM DBA INDEXES
  4     WHERE OWNER NOT IN (‘SYS’,’SYSTEM’);
SQL> SPOOL D:\STOPMONITOR.SQL
SQL> SELECT ’ALTER INDEX  ||OWNER||
  2         ‘.’||INDEX_NAME||’NOMONITORING USAGE;’
  3     FROM DBA INDEXES
  4     WHERE OWNER NOT IN (‘SYS’,’SYSTEM’);
SQL> SPOOL OFF
--Edit file startmonitor.sql seperlunya
--dan jalankan monitor
SQL> @D:\startmonitor
--Edit file stopmonitor.sql seperlunya
--dan hentikan monitoring indeks setelah periode tertentu
SQL> @D:\stopmonitor
--Periksa index yg tidak pernah digunakan selama periode
SQL> SELECT d.owner, v.index_name
  2     FROM dba_indexes d, v$object_usage v
  3       WHERE v.used=’NO AND d.index_name=v.index_name;

Setelah pemantauan berakhir query dictionaru DBA_INDEXES dan V$OBEJCT_USAGE untuk mengetahui nama indeks yang tidak pernah digunakan melalui kolom unused dan view V$OBEJCT_USAGE.