Pertimbangan Performansi dalam Aplikasi


Performansi / kecepatan operasi ke basis data ditentukan oleh :

  • DBMS yang digunakan
  • Arsitektur perangkat keras yang menjadi platform
  • Jumlah pemakai yang terlibat
  • Volume data
  • Tingkat kompleksitas operasi basis data
  • Cara penulisan aplikasi

Hal-hal yang perlu dipertimbangkan pada saat melaksanakan program

Memanfaatkan Indeks Primer

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%’

Kenapa beda ? Pada arsitektur cilent-server :

  • pada perintah yang asal (belum diperbaiki) maka pengerjaan pencarian data dan penerapan fungsi dilakukan diserver
  • pada perintah perbaikan, karena dibuat fungsi dan perhitungan bukan merupakan bagian dari perintah query, maka server hanya akan melakukan pencarian data, sedangkan pengerjaan mengenai fungsi dilakukan di client

Pada contoh kedua, pada perintah asal tidak memanfaatkan kunci primer. Sedangkan pada perintah perbaikan menggunakan kunci indeks primer.

Operasi Join

Operasi join pada beberapa tabel dapat digunakan untuk mengefisienkan perintah dan sekaligus banyaknya data yang harus ditangani. Contoh :

Ada dua perintah :

  • Select kdmtk as vkdmtk, nilai as vnilai from nilai where nomhs=vnomhs
  • 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

Melepaskan Kunci Tabel

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

Memanfaatkan Fungsi-fungsi DBMS

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

Menempatkan Perintah yang Tidak Relevan di Luar Perulangan

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 :

Algoritma tersebut dapat diperbaiki menjadi :


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *