optimasi query untuk pencarian data

advertisement
OPTIMASI QUERY UNTUK PENCARIAN DATA
DENGAN SUBSET QUERY
Kusrini, S.Kom
Abstract
There are several query models for accessing data from
two or more tables in a relational database. Two models
that have been observed are cross product and subset
query, since those models can be used to produce same
query result. To get an optimal system performance, it is
needed to find the best model in specific conditions.
By using Borland Delphi version 6 software program and
Interbase version 6 as database system, the researcher
was trying to prove the optimization query theory with
heuristic model. The theory says that one method to
optimize a query is by changing the cross product model
into subset query.
Kata kunci : database, query, optimasi, heuristic
1. Pendahuluan
1.1.
Latar Belakang Masalah
Perkembangan aplikasi sistem informasi saat ini lebih
cenderung ke client server, web base dan bahkan ke arah
mobile aplication. Aplikasi-aplikasi ini akan mengakses
basis data secara bersama-sama sehingga diperlukan
kecepatan akses yang cukup tinggi.
Dalam system basis data relasional sering terjadi
dibutuhkan pengaksesan data terhadap beberapa tabel
sekaligus. Ada beberapa cara dalam melakukan akses
ini, namun perlu diperhatikan cara mana yang paling
optimal sehingga diperoleh kecepatan akses tertinggi.
1.2.
Rumusan Masalah
Dengan menggunakan basis data Interbase dan bahasa
pemrograman Delphi 6, akan dibuat sebuah aplikasi
untuk menghitung waktu yang diperlukan untuk
melakukan pencarian dengan 2 model query yaitu dengan
cross product dan subset query.
1.3.
Tujuan Penelitian
Membuktikan bahwa penggunaan subset query lebih
efektif dibandingkan dengan menggunakan cross product.
2. Kajian Pustaka
Teknik optimasi dapat dilakukan dengan beberapa cara.
Terdapat 2 pendekatan optimasi yang umum digunakan
sebagaimana diungkapkan oleh Chanowich (2001), yakni:
a. Heuristik atau rule-based
Teknik ini mengaplikasikan aturan heuristik untuk
mempercepat proses query. Optimasi jenis ini
mentransformasikan query dengan sejumlah
aturan yang akan meningkatkan kinerja eksekusi,
yakni:
-
melakukan operasi selection di awal untuk
mereduksi jumlah baris
melakukan operasi projection di awal untuk
mereduksi jumlah atribut
mengkonversikan query dengan banyak
join menjadi query dengan banyak
subquery
melakukan operasi selection dan join yang
paling kecil keluarannya sebelum operasi
lain
b. Cost-based
Teknik
ini
mengoptimasikan
cost
yang
dipergunakan dari beberapa alternatif untuk
kemudian dipilih salah satu yang menjadi cost
terendah. Teknik ini mengoptimalkan urutan join
terbalik yang dimungkinkan pada relasi-relasi r1 
r2  ... rn. Teknik ini dipergunakan untuk
mendapatkan pohon left-deep join yang akan
menghasilkan sebuah relasi sebenarnya pada
node sebelah kanan yang bukan hasil dari sebuah
intermediate join.
3. Metodologi Penelitian
Untuk membuktikan bahwa subset query lebih baik dari
query degan banyak join atau cross product, peneliti
membuat sebuah basis data percobaan dengan
menggunakan interbase 6, basis data tersebut memuat 2
buah tabel percobaan,yaitu:
Nama Field
NIM
Nama
Alamat
Tipe
Integer
Varchar(30)
Varchar (80)
Tabel 1. Tabel Mahasiswa
Nama Field
NIM
MataKuliah
Tipe
Integer
Varchar(30)
Tabel 2. Tabel Kuliah
Untuk memasukkan data ke tabel-tabel tersebut diatas,
dibuat program pengisi data dengan menggunakan delphi
6.
Untuk melihat kinerja system dengan 2 model query yaitu
cross product dan subset query, dibuat query berikut:
a. Query dengan model cross product diwakili oleh
query berikut ini:
SELECT M.NIM, M.Nama, M.Alamat
FROM Mahasiswa M, Kuliah K
WHERE M.NIM = K.NIM
b. Query dengan model subset query diwakili oleh
query berikut ini:
SELECT NIM, Nama, Alamat
FROM Mahasiswa
WHERE NIM in ( SELECT NIM FROM Kuliah)
Kedua query tersebut akan menghasilkan informasi yang
sama, yaitu menampilkan data NIM, Nama dan Alamat
dari tabel Mahasiswa yang NIM-nya terdapat dalam table
Kuliah.
Untuk menyimpan hasil percobaan query data, dibuat
tabel waktu dengan struktur sebagai berikut:
Tabel Waktu
Nama Field
Jml
Q1
Tipe
Integer
Integer
Q2
Integer
Keterangan
Jumlah record hasil query
Waktu yang diperlukan untuk
query dengan menggunakan
cross product
Waktu yang diperlukan untuk
query dengan menggunakan
subset query
Tabel 3. Tabel Waktu
Untuk menghitung waktu yang diperlukan untuk
mengakses data, dibuat sebuah program aplikasi dengan
menggunakan Delphi.
4. Hasil Penelitian dan Pembahasan
Setelah melakukan percobaan dengan beberapa data,
diperoleh waktu hasil seperti ditunjukkan dalam tabel 4
berikut ini:
Jumlah Data
Waktu CP (ms)
Waktu SQ (ms)
1 10
4 5
5 5
50
9
22
100
10
45
1000
47
42
10000
425
56
25000
1162
121
Tabel 4. Waktu query
Adapun grafik hasilnya, tampak dalam gambar 1.
Gambar 1. Grafik Waktu Pengambilan Data
Dari hasil yang ditunjukkan oleh tabel 4 dan gambar 1,
dapat dilihat bahwa:
a. Pada data dengan jumlah record sedikit
penggunaan cross product dan subset query
menunjukkan kinerja yang sama
b. Pada data dengan jumlah record banyak, subset
query menunjukkan kinerja yang jauh lebih baik
dibanding dengan cross product
Dari data di atas dapat dihitung persamaan untuk waktu
akses dengan query cross roduct adalah :
Y = 0.0031265 x + 5165.1148
1)
Sedangkan persamaan untuk waktu akses dengan subset
query adalah :
Y = 0.0184276 x + 5165.0779
2)
Dengan Y adalah jumlah data hasil query dan x waktu
yang diperlukan dalam mili detik.
Dari persamaan 1) dan 2) bisa dihitung bahwa pada
jumlah record 5165 akan diperlukan waktu yang sama
yaitu 2.412398 mili detik
5. Kesimpulan
Dengan menggunakan Interbase 6, untuk data hasil query
lebih dari kurang dari atau sama dengan 5165 record,
penggunaan query dengan cross product membutuhkan
waktu yang lebih kecil dibanding dengan metode subset
query. Sebaliknya untuk data lebih besar dari 5165
record, penggunaan subset query jauh lebih cepat
disbanding dengan menggunakan cross product.
6. Daftar Pustaka
Chanowich, E. dan Sendelbach, E., 2001, “Query
Optimization” in CSE 498G – Advanced Database.
Korth, H.F., dan Silberschatz, A., 1991, Database System
Concepts, McGraw Hill, Singapura.
Setiawan, M.A., 2004, Optimasi SQL Query untuk
Informasi Retrievel pada Aplikasi Berbasis Web,
Proceedings Seminar Nasional Aplikasi Teknologi
Informasi UII, Yogyakarta
Download