Ada berbagai cara yang dapat digunakan untuk melakukan tuning, salah satunya adalah tuning basis data. Berikut ini penjelasan singkat mengenai tuning basis data.
1. Pengertian Tuning Basis Data
Menurut Ramakrishnan dan Gehrke (2005, p650), pengertian tuning basis data adalah peningkatan kinerja pada desain basis data secara fisikal yang mencakup relasi dan view sesuai dengan kebutuhan pengguna.
2. Tujuan Tuning Basis Data
Tujuan dari tuning basis data adalah:
- Mengurangi waktu respon dari sistem ke pengguna akhir.
- Mengurangi sumber daya yang diperlukan untuk melakukan pengolahan data dalam basis data.
Langkah umum untuk Tuning Basis Data. Ada 3 cara untuk melakukan tuning basis data, yaitu:
2.1 Mengurangi waktu kerja dengan cara yang lebih efisien.
Proses ini adalah dapat dilakukan dengan proses optimasi, yaitu mengganti sebuah query dengan query lain dengan fungsi sama namun dengan penggunaan sumber daya yang lebih sedikit dan waktu eksekusi yang lebih cepat.
2.2 Menyeimbangkan waktu kerja
Sistem umumnya bekerja lebih berat pada waktu siang hari dibandingkan malam hari. Di siang hari, sistem melakukan pemrosesan transasi dan pekerjaan yang tidak terlalu penting dilakukan di malam hari (misalnya, proses backup). Oleh karena itu, perlu dilakukan pembagian tugas kerja untuk sistem pada waktu siang dan malam hari. Hal ini akan mengurangi sumber daya yang diperlukan untuk melakukan pekerjaan di siang hari.
2.3 Membuat waktu kerja secara pararel
Query untuk mengakses data-data yang besar biasanya dapat dipararelkan. Hal ini sangat berguna untuk mengurangi waktu respon pada data-data yang jarang diakses secara bersamaan (Data Warehouse). Namun pada OLTP perlu diperhatikan dimana data-data tersebut memiliki waktu akses bersamaan yang sangat tinggi karena hal ini dapat meningkatkan penggunaan sumber daya yang selanjutnya akan meningkatkan waktu respon dari program.
3. Berbagai cara untuk meningkatkan kinerja dari Basis Data Oracle
3.1 Merubah desain basis data
Kinerja sistem yang lambat biasanya disebabkan dari desain basis data yang kurang baik. Pada desain basis data biasanya seseorang akan melakukan normalisasi ke dalam bentuk 3NF. Bentuk 3NF ini membuat beberapa akses ke basis data menjadi kurang cepat yang dapat dioptimalkan dengan melakukan denormalisasi untuk meningkatkan kinerja dari pengaksesan basis data.
3.2 Melakukan SQL Tuning
Pengalaman menunjukkan bahwa 80% dari permasalahan dari kinerja basis data dapat diselesaikan dengan penggunaan SQL yang optimal sehingga eksekusi query oleh server dapat berjalan dengan cepat dan tidak menghabiskan sumber daya.
3.3 Memory Tuning
Dengan menempatkan ukuran buffer yang tepat (untuk waktu menunggu, buffer hit ratios, system swapping dan paging). Maka optimasi basis data dapat dilakukan dengan melakukan pin pada objek-objek yang besar dan sering digunakan ke dalam memory. Hal ini dulakukan untuk mencegah pemanggilan yang terlalu sering (karena bila objek tersebut tidak di-pin maka akan membutuhkan sumber daya komputer yang lebih untuk memasukkan memory).
3.4 Disk I/O Tuning
File-file dalam basis data perlu untuk diukur dan ditempatkan secara tepat di dalam sebuah sistem. Hal ini digunakan untuk mempermudah akses ke dalam file tersebut dimana semakin sulit file tersebut diakses dan semakin besar ukuran file tersebut akan meningkatkan penggunaan sumber daya I/O. Hal yang harus diperhatikan adalah bagaiman kita mengatur tempat dari file-file basis data tersebut agar mudah diakses sehingga meningkatkan kemudahan akses ke dalam file tersebut yang pada akhirnya akan mengurangi penggunaan sumber daya I/O.
3.5 Menghilangkan Database Contention
Database Contention berhubungan dengan database locks, latches dan wait event yang terjadi dalam basis data. Untuk menghilangkan Database Contetion, harus dipelajari tentang ketiga hal tersebut dan menentukan apakah ketiga hal tersebut dapat dihilangkan untuk meningkatkan kinerja dari basis data anda.
3.6 Mengoptimasi Sistem Operasi
Memonitor dan melakukan optimasi CPU, I/O dan penggunaan memory sebagai contoh adalah mengoverclock CPU atau memberikan prioritas lebih kepada basis data Oracle sehingga Oracle dapat menggunakan lebih banyak CPU atau memory untuk melakukan aktivitas di dalam basis data.
4. Average Active Session
Active session merupakan jumlah dari sesi yang aktif (sedang melakukan pemanggilan ke dalam basis data atau tidak idle). Gambar 2.14 menunjukkan 4 orang pengguna dimana setiap pengguna mengakses basis data pada waktu yang berbeda-beda. Pada bagian awal yang ditunjukkan pada gambar 2.14 hanya user 4 yang melakukan pemanggilan ke database lalu pada bagian kedua hanya user 4 dan 3 yang melakukan pemanggilan ke database dan pada bagian ketiga hanya user 4, 3 dan 1 yang melakukan pemanggilan ke database sehingga dapat disimpulkan pada bagian awal hanya 1 active session (user 4) pada bagian kedua terdapat 2 active session dan pada bagian 3 terdapat 3 active session dan seterusnya.

Gambar 2.14 Pengertian dari Active Session
Sebuah sesi pemanggilan ke basis data terdiri dari beberapa kegiatan yang secara umum dapat dikategorikan menjadi 3 hal yaitu: CPU, IO dan wait yang dapat dilihat pada gambar 2.15 berikut:

Gambar 2.15 Pembagian komponen dari sebuah sesi pemanggilan ke basis data
Secara umum, Oracle akan menyimpan setiap sesi dalam kurun waktu per detik beserta aktivitas yang dilakukan oleh sesi tersebut yang dapat dilihat pada gambar 2.16 berikut:

Gambar 2.16 Ilustrasi aktivitas dari 4 sesi selama kurun waktu tertentu yang diambil oleh Oracle per detik
Untuk menggambarkan hal ini secara bentuk grafik maka Oracle secara langsung menggabungkan hasil tersebut ke dalam sebuah diagram batang seperti ditunjukkan pada gambar 2.17 berikut:

Gambar 2.17 Diagram batang untuk menggambarkan aktivitas dari sesi yang aktif
Namun jika penggambaran setiap sesi ini dilakukan per detik maka gambar yang dihasilkan tidak dapat dibaca karena garis yang terlalu tipis seperti pada gambar 2.18:

Gambar 2.18 Diagram Batang untuk menggambarkan aktivitas dari sesi yang aktif (per detik)
Sehingga untuk menggambarkan hal ini dengan baik maka secara langsung Oracle akan mengambil beberapa sampel dan merata-rata nya untuk mendapatkan sebuah Average Active Session yang mana hasilnya akan lebih mudah untuk dilihat seperti pada gambar 2.19

Gambar 2.19 Diagram Batang dari Average Active Session (dirata-rata selama 15 detik)
Pada oracle bentuk graph tersebut digambarkan seperti pada gambar 2.20 dimana diagram batang ini dapat dilihat dari Oracle Entreprise Manager pada Tab performance yang menggambarkan Average Active Session (rata-rata jumlah sesi yang aktif yang secara default di rata-rata dengan 15 detik)

Gambar 2.20 Gambar Average Active Session pada Oracle Entreprise Manager
Dari gambar Active Average Session yang ditunjukkan oleh Oracle maka dapat dilihat bagaimana kinerja basis data dalam kurun waktu tertentu dimana pada gambar Active Average Session tersebut dapat terlihat dengan jelas pekerjaan apa yang paling banyak dilakukan oleh sesi tersebut.