+ All Categories

Index

Date post: 12-Nov-2014
Category:
Upload: dimara-hakim
View: 4,859 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
31
Pertimbangan penggunaaan Pertimbangan penggunaaan INDEX INDEX Dimara Kusuma Hakim, ST. Rangga Praduwiratna. INDEXING CONSIDERATIONS
Transcript
Page 1: Index

Pertimbangan penggunaaanPertimbangan penggunaaan

INDEXINDEX

Dimara Kusuma Hakim, ST.Rangga Praduwiratna.

INDEXING CONSIDERATIONS

Page 2: Index

“DATABASE PERFORMANCE,” what do you think it means?

Most of us think of how FAST a database returns a QUERY.

Page 3: Index

Performance can be tuned to retrieve datasets in the most efficient way possible.

One of the primary ways of speeding access to the data is by using an INDEX

Page 4: Index

Tabel pada sebuah database yang tidak menggunakan index (disebut heaps) menggunakan metode “table-scan” saat dilakukan pencarian data atau pengaksesan query.

“Table scan” dapat diumpamakan seperti mencari sebuah arti kata dalam pada sebuah buku yang tidak memiliki indeks huruf.

Page 5: Index

Contoh : sebuah buku Contoh : sebuah buku dengan indexdengan indexMencari arti kata ‘mobil’ di Kamus

Besar Bahasa Indonesia (KBBI) :◦membuka kamus berdasarkan index

hurufnya◦mencari huruf ‘m’◦meneruskan pencarian hingga

menemukan halaman yang mengandung kata ‘mo’

◦mengakhiri proses pencarian hingga didapat kata “mobil”

Page 6: Index

Buku Tanpa Index Huruf ?Buku Tanpa Index Huruf ?mencari dari awal halaman

hingga menemukan kata yang dicari.

perumpamaan “table-scan” adalah seperti hal ini. Table-scan akan mencari data pada tabel database dari awal hingga menemukan data yang dicari.

Page 7: Index

Data yang tersimpan, Data yang tersimpan, sebenarnya tidak terurut sebenarnya tidak terurut sama sekali !!!sama sekali !!!sistem penyimpanan data pada DB

adalah melalui pages. Setiap pages hanya terdiri dari 8Kb data, dan 8 buah pages (64kb) tersebut akan disimpan pada sebuah extent.

Walaupun data yang dimunculkan terlihat terurut, namun sebenarnya cara pencarian data tersebut tidak dilakukan dengan cara yang diumpamakan tadi (index huruf pada KBBI),

Page 8: Index

IlustrasiIlustrasipencarian data akan dimulai dari

pages pertama hingga pages terakhir dari sebuah extent, jika tidak ditemukan maka akan dilanjutkan ke extent berikutnya.

Kelemahan : saat memasukkan data pada tabel tertentu, data tidak secara otomatis disimpan secara terurut, namun disimpan pada pages yang masih bisa menyimpan data.

Page 9: Index

Jadi saat memasukkan data yang harusnya berada di urutan 2 pada tabel, data ini akan disimpan pada pages terakhir yang masih bisa menyimpan data.

Hal inilah yang seringkali membuat proses pencarian data menjadi lebih lama pada database yang tidak memiliki index, terutama pada database dengan skala OLDB (Online Large Database) dan VLDB (Very Large Database).

Page 10: Index

Solusi : IndexSolusi : IndexPerlu diingat, setelah Index diterapkan, data tidak akan terurut secara fisik.

Hal ini berarti, data tidak diurutkan secara terurut pada harddisk.

Data pada tabel database Anda akan terurut secara logical pada level pages dan extent.

Page 11: Index

IndexIndexclustered indexnon-clustered index.

Page 12: Index

CClustered lustered IIndexndexClustered index dapat

diumpamakan seperti index huruf pada sebuah kamus.

Mencari arti kata ‘mobil’ di Kamus Besar Bahasa Indonesia (KBBI) :◦ membuka kamus berdasarkan index hurufnya◦ mencari huruf ‘m’◦ meneruskan pencarian hingga menemukan halaman

yang mengandung kata ‘mo’◦ mengakhiri proses pencarian hingga didapat kata “mobil”

Page 13: Index

CClusteredlustered……

Saat sebuah data baru dimasukkan, maka DB akan memaksa untuk memasukkan data tersebut pada urutan yang seharusnya.

Bagaimana cara DB tahu urutan yang sebenarnya dan kita inginkan?

Terapkan clustered index pada kolom tabel yang paling sering diakses oleh user ( bagaimana bisa ?)

Page 14: Index

Saran…Saran…

Oleh karena itu, sangat disarankan pembuatan kolom tabel yang spesifik.

Misal : TabelKTP pada database DataKaryawan

Page 15: Index
Page 16: Index

karena pencarian data pada database KTP lebih banyak menggunakan parameter nama belakang, maka dapat diterapkan clustered index pada kolom Nama Belakang.

Hal ini akan membuat proses pencarian data pada server database lebih cepat.

Page 17: Index

Cara menerapkan clustered index ? Cara menerapkan clustered index ?

Command Line

GUI-based

Page 18: Index

CREATE CLUSTERED INDEX ci_namabelakang ON TabelKTP(NamaBelakang);

ci_namabelakang adalah nama clustered index yang kita buat, sedangkan TabelKTP adalah nama tabel dimana kita ingin menerapkan clustered index pada salah satu kolomnya, sedangkan (NamaBelakang) adalah kolom yang akan diberikan clustered index.

Page 19: Index

Clustered… note…Clustered… note…

Perlu diingat bahwa clustered index hanya bisa diterapkan sebanyak 1 kali pada 1 tabel, dan secara otomatis, sebuah primary key juga akan menjadi clustered index pada tabel tersebut.

Clustered index sebaiknya diterapkan pada kolom tabel yang paling sering digunakan pada saat pencarian data.

Page 20: Index

Non-clustered Index Non-clustered Index non-clustered index dapat

diumpamakan seperti sebuah daftar indeks pada buku.

Page 21: Index

Jika kita mencari sebuah arti kata atau pembahasan mengenai sebuah kata pada buku yang memiliki indeks pada bagian belakangnya, maka yang kita lakukan pertama kali adalah mencari kata tersebut pada indeks buku.

Page 22: Index

Setelah kata ditemukan, maka apakah kita langsung mendapatkan hasil yang kita cari? Tidak.

Kita masih harus mencari penjelasan mengenai kata tersebut pada halaman yang tercantum di sebelah kata tersebut bukan?

Page 23: Index

Ilustrasi tersebut berlaku juga pada non-clustered index. Non-clustered index berisi pointer-pointer yang menunjukkan lokasi sesungguhnya dari data

Cara ini sedikit lebih membutuhkan waktu pencarian dibanding dengan metode clustered index, namun pada database dengan skala OLDB atau VLDB, metode ini sangat membantu dibanding dengan penggunaan metode table-scan.

Page 24: Index

non-clustered index dapat diimplementasikan sebanyak 249 buah pada sebuah tabel.

Page 25: Index

Cara penerapan :Cara penerapan :

Command Line

GUI-based

Page 26: Index

Misalnya, jika pada tabel KTP pada database DataKaryawan, parameter yang juga sering digunakan dalam pencarian data (selain nama belakang) adalah tanggal lahir, maka dapat diimplementasikan non-clustered index dengan cara sebagai berikut :

CREATE NONCLUSTERED INDEX nci_tanggallahir ON TabelKTP(TanggalLahir);

Page 27: Index

DEMODEMO

Page 28: Index

Tanpa Index sama sekaliTanpa Index sama sekali disebut HEAPs disebut HEAPs

Page 29: Index

Dengan Primary Key (Index Dengan Primary Key (Index Primer)Primer)

Page 30: Index

Tanpa Index SekunderTanpa Index Sekunder

Page 31: Index

Dengan Index Dengan Index (untuk atribut FirstName)(untuk atribut FirstName)


Recommended