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.
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
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
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
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
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
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
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
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
* 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.
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.
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.
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 .
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.
|