Pertimbangan penggunaaan INDEX Dimara Kusuma Hakim, ST. Rangga Praduwiratna.  INDEXING CONSIDERATIONS
<ul><li>“ DATABASE PERFORMANCE,” what do you think it means? </li></ul><ul><li>Most of us think of how FAST a database ret...
<ul><li>Performance can be tuned to retrieve datasets in the most efficient way possible. </li></ul><ul><li>One of the pri...
<ul><li>Tabel pada sebuah database yang tidak menggunakan index (disebut  heap s) menggunakan metode  “ table-scan ”  saat...
Contoh : sebuah buku dengan index <ul><li>Mencari  arti kata ‘mobil’ di Kamus Besar Bahasa Indonesia (KBBI)  : </li></ul><...
Buku Tanpa Index Huruf ? <ul><li>mencari dari awal halaman hingga menemukan kata yang  di cari. </li></ul><ul><li>perumpam...
Data yang tersimpan, sebenarnya tidak terurut sama sekali !!! <ul><li>sistem penyimpanan data pada  DB  adalah melalui  pa...
Ilustrasi <ul><li>pencarian data akan dimulai dari pages pertama hingga pages terakhir dari sebuah extent, jika tidak dite...
<ul><li>Jadi saat memasukkan data yang harusnya berada di urutan 2 pada tabel, data ini akan disimpan pada pages terakhir ...
Solusi : Index <ul><li>Perlu diingat , setelah Index diterapkan , data tidak akan terurut secara fisik. </li></ul><ul><li>...
Index <ul><li>clustered index </li></ul><ul><li>non-clustered index.  </li></ul>
C lustered  I ndex <ul><li>Clustered index dapat diumpamakan seperti index huruf pada sebuah kamus.  </li></ul><ul><li>Men...
C lustered … <ul><li>Saat sebuah data baru  dimasukkan , maka  DB  akan memaksa untuk memasukkan data tersebut pada urutan...
Saran… <ul><li>Oleh karena itu, sangat  disarankan  pembuatan kolom tabel yang spesifik.  </li></ul><ul><li>Misal  :  Tabe...
 
<ul><li>karena pencarian data pada database KTP lebih banyak menggunakan parameter nama belakang, maka dapat  diterapkan  ...
Cara menerapkan clustered index ?  <ul><li>Command Line </li></ul><ul><li>GUI-based </li></ul>
<ul><li>CREATE CLUSTERED INDEX ci_namabelakang ON TabelKTP(NamaBelakang);  </li></ul><ul><li>ci_namabelakang adalah nama  ...
Clustered… note… <ul><li>Perlu diingat bahwa clustered index hanya bisa diterapkan sebanyak 1 kali pada 1 tabel, dan secar...
Non-clustered Index  <ul><li>non-clustered index dapat diumpamakan seperti sebuah daftar indeks pada buku. </li></ul>
<ul><li>Jika kita mencari sebuah arti kata atau pembahasan mengenai sebuah kata pada buku yang memiliki indeks pada bagian...
<ul><li>Setelah kata ditemukan, maka apakah kita langsung mendapatkan hasil yang kita cari? Tidak. </li></ul><ul><li>Kita ...
<ul><li>I lustrasi tersebut berlaku juga pada non-clustered index. Non-clustered index berisi pointer-pointer yang menunju...
<ul><li>non-clustered index dapat diimplementasikan sebanyak 249 buah pada sebuah tabel.  </li></ul>
Cara penerapan : <ul><li>Command Line </li></ul><ul><li>GUI-based </li></ul>
<ul><li>Misalnya, jika pada tabel KTP pada database DataKaryawan, parameter yang juga sering digunakan dalam pencarian dat...
DEMO
Tanpa Index sama sekali   disebut HEAPs
Dengan Primary Key (Index Primer)
Tanpa Index Sekunder
Dengan Index  (untuk atribut FirstName)
Upcoming SlideShare
Loading in...5
×

Index

2,749

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,749
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
53
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Index

  1. 1. Pertimbangan penggunaaan INDEX Dimara Kusuma Hakim, ST. Rangga Praduwiratna. INDEXING CONSIDERATIONS
  2. 2. <ul><li>“ DATABASE PERFORMANCE,” what do you think it means? </li></ul><ul><li>Most of us think of how FAST a database returns a QUERY. </li></ul>
  3. 3. <ul><li>Performance can be tuned to retrieve datasets in the most efficient way possible. </li></ul><ul><li>One of the primary ways of speeding access to the data is by using an INDEX </li></ul>
  4. 4. <ul><li>Tabel pada sebuah database yang tidak menggunakan index (disebut heap s) menggunakan metode “ table-scan ” saat dilakukan pencarian data atau pengaksesan query. </li></ul><ul><li>“ Table scan ” dapat diumpamakan seperti mencari sebuah arti kata dalam pada sebuah buku yang tidak memiliki indeks huruf. </li></ul>
  5. 5. Contoh : sebuah buku dengan index <ul><li>Mencari arti kata ‘mobil’ di Kamus Besar Bahasa Indonesia (KBBI) : </li></ul><ul><ul><li>membuka kamus berdasarkan index hurufnya </li></ul></ul><ul><ul><li>mencari huruf ‘m’ </li></ul></ul><ul><ul><li>meneruskan pencarian hingga menemukan halaman yang mengandung kata ‘mo’ </li></ul></ul><ul><ul><li>mengakhiri proses pencarian hingga didapat kata “ mobil ” </li></ul></ul>
  6. 6. Buku Tanpa Index Huruf ? <ul><li>mencari dari awal halaman hingga menemukan kata yang di cari. </li></ul><ul><li>perumpamaan “ table-scan ” adalah seperti hal ini. Table-scan akan mencari data pada tabel database dari awal hingga menemukan data yang dicari. </li></ul>
  7. 7. Data yang tersimpan, sebenarnya tidak terurut sama sekali !!! <ul><li>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. </li></ul><ul><li>Walaupun data yang dimunculkan terlihat terurut, namun sebenarnya cara pencarian data tersebut tidak dilakukan dengan cara yang di umpamakan tadi (index huruf pada KBBI), </li></ul>
  8. 8. Ilustrasi <ul><li>pencarian data akan dimulai dari pages pertama hingga pages terakhir dari sebuah extent, jika tidak ditemukan maka akan dilanjutkan ke extent berikutnya. </li></ul><ul><li>Kelemahan : saat memasukkan data pada tabel tertentu, data tidak secara otomatis disimpan secara terurut, namun disimpan pada pages yang masih bisa menyimpan data. </li></ul>
  9. 9. <ul><li>Jadi saat memasukkan data yang harusnya berada di urutan 2 pada tabel, data ini akan disimpan pada pages terakhir yang masih bisa menyimpan data. </li></ul><ul><li>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). </li></ul>
  10. 10. Solusi : Index <ul><li>Perlu diingat , setelah Index diterapkan , data tidak akan terurut secara fisik. </li></ul><ul><li>Hal ini berarti, data tidak diurutkan secara terurut pada harddis k . </li></ul><ul><li>Data pada tabel database Anda akan terurut secara logical pada level pages dan extent. </li></ul>
  11. 11. Index <ul><li>clustered index </li></ul><ul><li>non-clustered index. </li></ul>
  12. 12. C lustered I ndex <ul><li>Clustered index dapat diumpamakan seperti index huruf pada sebuah kamus. </li></ul><ul><li>Mencari arti kata ‘mobil’ di Kamus Besar Bahasa Indonesia (KBBI) : </li></ul><ul><ul><li>membuka kamus berdasarkan index hurufnya </li></ul></ul><ul><ul><li>mencari huruf ‘m’ </li></ul></ul><ul><ul><li>meneruskan pencarian hingga menemukan halaman yang mengandung kata ‘mo’ </li></ul></ul><ul><ul><li>mengakhiri proses pencarian hingga didapat kata “ mobil ” </li></ul></ul>
  13. 13. C lustered … <ul><li>Saat sebuah data baru dimasukkan , maka DB akan memaksa untuk memasukkan data tersebut pada urutan yang seharusnya. </li></ul><ul><li>B agaimana cara DB tahu urutan yang sebenarnya dan kita inginkan ? </li></ul><ul><li>Terapkan clustered index pada kolom tabel yang paling sering diakses oleh user (  bagaimana bisa ?) </li></ul>
  14. 14. Saran… <ul><li>Oleh karena itu, sangat disarankan pembuatan kolom tabel yang spesifik. </li></ul><ul><li>Misal : TabelKTP pada database DataKaryawan  </li></ul>
  15. 16. <ul><li>karena pencarian data pada database KTP lebih banyak menggunakan parameter nama belakang, maka dapat diterapkan clustered index pada kolom Nama Belakang . </li></ul><ul><li>Hal ini akan membuat proses pencarian data pada server database lebih cepat. </li></ul>
  16. 17. Cara menerapkan clustered index ? <ul><li>Command Line </li></ul><ul><li>GUI-based </li></ul>
  17. 18. <ul><li>CREATE CLUSTERED INDEX ci_namabelakang ON TabelKTP(NamaBelakang); </li></ul><ul><li>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. </li></ul>
  18. 19. Clustered… note… <ul><li>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. </li></ul><ul><li>Clustered index sebaiknya diterapkan pada kolom tabel yang paling sering digunakan pada saat pencarian data. </li></ul>
  19. 20. Non-clustered Index <ul><li>non-clustered index dapat diumpamakan seperti sebuah daftar indeks pada buku. </li></ul>
  20. 21. <ul><li>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. </li></ul>
  21. 22. <ul><li>Setelah kata ditemukan, maka apakah kita langsung mendapatkan hasil yang kita cari? Tidak. </li></ul><ul><li>Kita masih harus mencari penjelasan mengenai kata tersebut pada halaman yang tercantum di sebelah kata tersebut bukan? </li></ul>
  22. 23. <ul><li>I lustrasi tersebut berlaku juga pada non-clustered index. Non-clustered index berisi pointer-pointer yang menunjukkan lokasi sesungguhnya dari data </li></ul><ul><li>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. </li></ul>
  23. 24. <ul><li>non-clustered index dapat diimplementasikan sebanyak 249 buah pada sebuah tabel. </li></ul>
  24. 25. Cara penerapan : <ul><li>Command Line </li></ul><ul><li>GUI-based </li></ul>
  25. 26. <ul><li>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 : </li></ul><ul><li>CREATE NONCLUSTERED INDEX nci_tanggallahir ON TabelKTP(TanggalLahir); </li></ul>
  26. 27. DEMO
  27. 28. Tanpa Index sama sekali  disebut HEAPs
  28. 29. Dengan Primary Key (Index Primer)
  29. 30. Tanpa Index Sekunder
  30. 31. Dengan Index (untuk atribut FirstName)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×