Pertimbangan
performansi dalam aplikasi
a. Performansi / kecepatan operasi ke basis data
ditentukan oleh :
o DBMS yang
digunakan
o Arsitektur
perangkat keras yang menjadi platform
o Jumlah
pemakai yang terlibat
o Volume
data
o Tingkat
kompleksitas operasi basis data
o Cara
penulisan aplikasi
b. Hal-hal yang perlu dipertimbangkan pada saat
melaksanakan pemrograman :
Ø Sedapat mungkin memanfaatkan indeks primer / sekunder
dalam
setiap proses query ke basis data, contoh :
ü Select …. From pegawai where idpegawai = vidpegawai.
ü Update pegawai set …. Where idpegawai = vidpegawai.
ü Delete from pegawai where idpegawai = vidpegawai.
Menghindari
pemakaian fungsi atau perhitungan pada perintah query, terlebih lagi untuk
kriteria query. Contoh :
ü Select „01‟+left(nomhs,2) as vthn from mahasiswa where
…
Diganti
menjadi :
Select nomhs as vnim from mahasiswa where
thn_masuk
= ‘01’+left(vnim,2)
ü Select … from kuliah where left(kdmtk,3)=‟TFD‟
Diganti
menjadi :
Select
… from kuliah where kdmtk like ‘TFD%’
Ø Operasi join pada beberapa tabel dapat digunakan untuk
mengefisienkan perintah dan sekaligus banyaknya data yang harus ditangani.
Contoh :
Ada
dua perintah :
1. Select kdmtk as vkdmtk, nilai as vnilai from nilai
where nomhs=vnomhs
2. Select sks as vsks from kuliah where kdmtk=vkdmtk
Dapat
digabungkan menjadi :
Select
a.nilai as vnilai, b.sks as vsks from nilai a, kuliah b where a.nomhs=vnomhs
and a.kdmtk=b.kdmtk
Ø Pada sistem multi-user dengan tingkat konkurensi
tinggi (pemakai yang aktif banyak),sesegara mungkin melepaskan penguncian
tabel di akhir setiap query. Karena proses dilakukan dalam dua tahap, yaitu
menyimpan secara sementara di buffer memory lalu menuliskan ke dalam disk.
Untuk membatalkan ada perintah rollback. Contoh :
Insert
into nilai (nomhs, kdmtk) values (vnomhs, vkdmtk)
Commit
à untuk merekam ke disk
Ø Manfaatkan sebanyak mungkin fungsi-fungsi yang telah
disediakan DMS ataupun development tools yang terkait dengan operasi basis
data.
Select
count (*) as vjumlah from mahasiswa where nomhs=vnomhs
If
vjumlah=0 then
Echo
“Tidak ketemu..”
Else
Select
nama as vnama from mahasiswa where nomhs=vnomhs
Endif
Akan
lebih baik, jika diganti menjadi :
Select
nama as vnama from mahasiswa where nomhs=vnomhs
Inquire_sql
(jumlah=rowcount)
If
vjumlah=0 then
Echo
“Tidak ketemu…”
Else
Echo
“Nama : “;&vnama
Endif
Ø Jika ada perintah perulangan (looping) dengan
penelusuran seluruh basis data pada sebuah tabel, sebisa mungkin menempatkan
berbagai perintah yang tidak relevan di luar perulangan. Contoh :
I=1
Buka
tabel X
While
(row belum habis) do
Tampilkan
pesan “Sedang diproses…”
Total=total+y
Rata=total/i
I=i+1
Ke
row berikutnya
Endwhile
Tampilkan
total dan rata
Algoritma tersebut dapat diperbaiki menjadi :
I=0
Tampilkan
pesan “Sedang diproses…”
Buka
tabel X
While
(row belum habis) do
Total=total+y
I=i+1
Ke row berikutnya
Endwhile
Rata=total/i
Tampilkan
total dan rat