Jumat, 27 Maret 2009

Store Procedure

Store procedure adalah program yang disimpan dalam data base seperti halnya data. Hal ini sebenanya cukup tidak umum, karena kita mengharapkan yang disimpan dalam data base adalah data bukan nya program. Tentunya dalam hal ini selalu ada pertimbangan dalam menggunakan store procedure / function pada postgres sql. Biasanya store procedure digunakan saat pengembangan aplikasi yang memiliki skala besar, sehingga membutuhkan pembagian kinerja antara aplikasi dan basis data yang digunakan. Keuntungan menggunakan store procedure dibanding dengan adhoc query adalah:
Kinerja
i. Execution plan pada stored procedure sudah dibuat pada saat procedure itu dikompilasi jadi hanya terjadi 1 kali. Berbeda dengan adhoc query terutama dengan query tanpa parameter, Query adhoc dikompilasi (dibuat parse tree dan query tree) secara realtime, terutama jika query tersebut tidak ada di procedure cache.
ii. Stored procedure dapat dipin(ditandai) di memori. Artinya sebuah sp dapat dipaksa untuk tetap berada di memori fisik meskipun DBMS membutuhkan memori tambahan. Akibatnya operasi swaping in dan swapping out sp dapat diminimalkan terutama untuk sp yang sering dipakai.
iii. Query select pada SP dapat diatur menggunakan format tertentu sehingga index dapat digunakan untuk query.
iv. SP dapat digunakan untuk membatasi jumlah record yang dikirim ke client. Hal ini dapat mengurangi beban jaringan. Hal ini akan sangat mempercepat karena bottle neck utama di applikasi database terletak di jaringan.
v. SP terletak di DBMS sehingga untuk proses yang membutuhkan data banyak, round trip untuk permintaan data sampai data itu diterima dapat ditiadakan.

Keamanan
i. SP mencegah terjadinya SQL injeksion. SQL injeksion adalah sebuah aksi hacking yang dilakukan di applikasi client dengan cara memodifikasi perintah SQL yang ada di memori applikasi client.
ii. Hak akses sp terhadap data di database bergantung pada hak akses pembuatnya bukan bergantung pada hak akses pengguna sp. Hal ini memungkinkan user applikasi untuk tidak diberi hak akses terhadap semua tabel yang ada namun diberi hak akses untuk menjalankan sp. Akibat penggunaan mekanisme ini adalah enforcement terhadap aktifitas user (select, inser, update, delete) tersentralisasi bahkan untuk applikasi seperti query analyzer tidak akan bisa digunakan untuk mengakses data secara tidak sah.

Tidak ada komentar:

Posting Komentar