Untuk melakukan retrieving suatu data dalam table, kita bisa menggunakan stored procedure. Stored Procedure ini sebaiknya digunakan apabila database server terpisah secara fisik dengan aplikasi atau disebut aplikasi Multi Tier. Dengan mengggunakan stored procedure SQL tidak akan akan melakukan loading semua table yang ter-relasi, tetapi langsung melakukan filtering berdasarkan query yang kita maksud. Stored procedure menyimpan statement-statement SQL dalam sebuah berkas yang disimpan di database server, sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan, stored procedure banyak dipakai sebagai solusi akses data.

Setiap kali Query Processing menjalankan query, gambaran prosesnya sbb:
1. Pengecekan Syntax
2. Pemilihan execution plan yang paling optimal
3. Eksekusi query

Query yang ada di SP sudah di-compile terlebih dahulu, jadi ada 1 step yang di-skip pada SP. Compile maksudnya adalah pemilihan mana execution plan yang paling optimal.

Keuntungan menggunakan Stored Procedure :
– Stored Procedure lebih fleksibel karena ada parameter didalamnya
– Proses dilakukan di Database Server sehingga lebih cepat, aplikasi cukup memanggil stored
procedure dan mengirim parameter yang diperlukan
– untuk membagi beban resource yang terpakai saat aplikasi di jalankan. Jika semua query dijalankan pada aplikasi/client (Front End) maka resource yang terpakai pada client tersebut akan besar, oleh karena itu perintah query tersebut dibuat pada stored procedure (eksekusi pada server)
– untuk mempermudah maintain aplikasi. Apabila ada proses query yang sama dan berulang, dengan stored procedure akan lebih simple dalam proses pembuatan aplikasi.
– Mendukung ANSI model terhadap database. Ansi model adalah sebuah model database yang memodelkan penglihatan user terhadap database menjadi 3 komponen yaitu user view, logical view dan fisikal view
– Stored procedure mencegah terjadinya SQL injection

Kekurangannya :
Apabila ingin mengganti Database Server, misalnya dari Oracle ke SQL
Server, porting Stored Procedurenya menyulitkan, antara PL SQL ke T-SQL. Berbeda jika embedded di Aplikasi, kita cukup mengganti Koneksinya karena Logicnya dilakukan di Aplikasi dan menggunakan SQL Standard.

Referensi :
prihastomo.files.wordpress.com/2008/04/view_or_sp.pdf
www.cert.or.id/~budi/courses/security/2006-2007/Report-Nial.doc