Kamis, 01 Januari 2015

Tuning dan Indexing di Oracle

1. Tuning
 Pengertian Tuning
Tuning adalah suatu tindakan untuk menemukan sesuatu yang menjadi penyebab masalah dan membuat suatu perbaikan yang diperlukan untuk mengurangi dampak dari masalah tersebut.
Sesuai dengan pengertian tuning menurut Chan dan Ashdown (2009, p22) yaitu tindakan mengidentifikasikan hambatan-hambatan paling signifikan dan membuat perubahan yang diperlukan untuk mengurangi dampak dari permasalahan tersebut. Ada beberapa faktor yang dapat digunakan untuk mengukur efisiensi:

  • Transaction throughput.
Yaitu berapa banyak transaksi yang dapat diproses dalam jangka waktu yang diberikan. Contoh: sebanyak 100 transaksi dapat diproses dalam waktu satu jam. Semakin banyak transaksi yang diproses dalam waktu satu jam, semakin tinggi throughput-nya.

  • Response time.
Yaitu waktu yang digunakan untuk menyelesaikan satu transaksi. Dari titik pandang seorang pemakai, semakin singkat response time-nya semakin baik. Bagaimanapun, ada beberapa faktor yang mempengaruhi response time yang tidak bisa dikontrol oleh perancang seperti pada saat sistem loading. Response time dapat diminimalisasi dengan cara:

  1. Mengurangi waktu selisih dan waktu tunggu (contention and wait times), terutama waktu tunggu disk I/O.
  2. Mengurangi jumlah waktu yang diperlukan sumber daya.
  3.  Menggunakan komponen yang lebih cepat.

  • Penyimpanan disk.
Yaitu jumlah media penyimpanan yang dibutuhkan pada suatu disk. Semakin minim penggunaan media penyimpanan, maka akan semakin efisien.

Jenis-Jenis Tuning
Berdasarkan pendapat Mohamed (p10), jenis-jenis tuning dibagi ke dalam 3 jenis yaitu:

  1. Operating system tuning
Pada jenis ini lebih fokus pada siklus CPU, alokasi RAM dan jaringan.

  • CPU cycles
Jumlah dari siklus CPU yang ada dapat memperlambat execution time suatu SQL. Ketika run-queue melebihi jumlah CPU pada server Oracle, CPU menjadi terbebani.

  • Available RAM memory
Jumlah memori RAM yang tersedia untuk Oracle mempengaruhi kinerja SQL, terutama dalam melakukan data buffer. Penambahan memori RAM akan membantu meningkatkan kinerja pada tingkat tertentu.

  •   Network
Sejumlah besar traffic Oracle Net akan memberikan kontribusi dalam lambatnya kinerja SQL. Hal ini seharusnya dapat dimonitor dan dikelola dengan baik.

  •  Monitor and manage disk I/O
Akses objek dan lokasi dari objek tersebut berkaitan langsung dengan penggunaan disk. Penggunaan konfigurasi RAID yang tepat akan membantu menyeimbangkan operasi I/O. Datafile, OS, dan Oracle wait information diperlukan untuk menentukan secara akurat masalah-masalah yang terjadi kemudian mengelola serta menyelesaikan masalah-masalah tersebut.

Manfaat Tuning
Menurut Connoly dan Begg (2010, p558), manfaat atau keuntungan yang akan diperoleh jika melakukan tuning adalah sebagai berikut:

  1. Dengan tuning, kita dapat meminimalkan pembelian hardware baru.
  2. Tuning memungkinkan untuk menurunkan konfigurasi hardware. Hasilnya tidak terlalu banyak memerlukan hardware tambahan dan biaya penggunaan hardware yang lebih murah sehingga biaya pemeliharaannya juga lebih murah.
  3. Sebuah sistem yang di-tuning dengan baik akan menghasilkan response time yang lebih cepat dan throughput yang lebih baik, sehingga membuat pemakai dan perusahaan menjadi lebih produktif.
  4. Meningkatnya response time dapat meningkatkan semangat kerja dari para pegawai.
  5. Meningkatnya response time dapat menambah tingkat kepuasan pelanggan.

Index
Pengertian Index
Menurut Ashdown & Kyte (2011, p61), Index adalah sebuah struktur optional yang diasosiasikan dengan table atau table cluster yang dapat mempercepat akses Data. sedangkan menurut Connolly & Begg(2010,p242) index adalah sebuah struktur yang menyediakan percepatan akses kepada sebuah baris dalam tabel didasari pada nilai dari satu atau lebih kolom. Dari ke dua definisi diatas dapat ditarik kesimpulan bahwa index adalah sebuah struktur yang digunakan untuk mempercepat akses data dan didasari dari sebuah nilai.
Oleh karena itu dengan jika suatu tabel dengan jumlah data yang besar tidak menggunakan Index, maka database harus melakukan full table scan dalam mencari nilai yang akan menyebabkan waktu akan semakin bertambah seiring dengan meningkatnya volume Data.

Karakteristik Index
a.      Usability
Index dapat berupa usable ataupun unusable, dimana suatu unusable index tidak diatur oleh operasi DML dan diabaikan oleh optimizer sehingga meningkatkan peforma bulk loads yaitu kejadian dimana dilakukannya proses entry data dalam jumlah besar ke dalam tabel dimana jika index sedang dalam kondisi usable dapat memperlambat proses entry data tersebut. Selain itu penggunaan Unusable Index dan Index partitions tidak mengkonsumsi space dan ketika suatu Index dibuat menjadi unusable, database akan melakukan proses drop pada Index Segment.
b.      Visibility
Index dapat berupa visible atau invisible, dimana suatu invisible Index akan diatur oleh operasi DML dan tidak digunakan secara default oleh optimizer. Selain itu suatu invisible Index merupakan suatu alternatif untuk membuat Index tersebut menjadi unusable atau men-drop nya. Kemudian, Invisible Index sangat berguna untuk melakukan testing terhadap suatu Index sebelum Index tersebut di drop atau digunakan secara temporer tanpa mengganggu kinerja aplikasi.

Jenis jenis Index pada Oracle
a.      B*tree Index
B-Tree merupakan singkatan dari balanced trees, dan merupakan jenis index yang paling sering dipakai dimana B-tree index merupakan sederetan nilai terurut yang dibagi dalam jarak nilai tertentu. Lalu B-tree juga memberikan performa pengambilan sejumlah baris query yang sangat baik.

b.   Reverse Index
Reverse Index secara mendasar hampir sama dengan B*tree Index akan tetapi urutan byte pada nilai yang disimpan pada index dibalik sehingga jika nilainya adalah “ABCD” maka nilai pada reverse index adalah “DBCA”. Keuntungan menggunakan index ini adalah mampu menghindari kecenderungan  data  yang  banyak  di  satu  bagian  saja  yang  diakibatkan proses insert data yang berurutan.


c.  Function – Based Index
Function based index merupakan tipe index yang memiliki kegunaan untuk melakukan suatu proses komputasi terhadap satu atau lebih kolom dengan penggunaan fungsi dimana yang   menyimpan     hasil perhitungan suatu fungsi pada kolom dalam tabel.


d.   Bitmap Index
Bitmap Index menggunakan bit untuk menandai nilai kolom yang dibuat index. Bitmap index cocok untuk kolom yang memiliki cardinality rendah (jenis nilainya sedikit) dan tabel yang berukuran besar.

0 komentar:

Posting Komentar

 
Copyright © 2012. axsaner - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger