Apakah akan menggunakan Prosedur Tersimpan atau tidak lebih merupakan diskusi agama atau politik di bar daripada tidak.
Yang perlu dilakukan adalah dengan jelas mendefinisikan lapisan aplikasi Anda dan tidak melangkahi batas-batas itu. Prosedur tersimpan memiliki beberapa kelebihan dan kekurangan dibandingkan melakukan kueri di luar database.
Keuntungan 1:Prosedur tersimpan bersifat modular. Ini adalah hal yang baik dari sudut pandang pemeliharaan. Saat masalah kueri muncul di aplikasi Anda, Anda mungkin akan setuju bahwa lebih mudah untuk memecahkan masalah prosedur tersimpan daripada kueri tertanam yang terkubur dalam banyak baris kode GUI.
Keuntungan 2:Prosedur tersimpan dapat disetel. Dengan memiliki prosedur yang menangani pekerjaan database untuk antarmuka Anda, Anda menghilangkan kebutuhan untuk memodifikasi kode sumber GUI untuk meningkatkan kinerja kueri. Perubahan dapat dilakukan pada prosedur tersimpan--dalam hal metode gabungan, tabel yang berbeda, dll.--yang transparan ke antarmuka front-end.
Keuntungan 3:Prosedur tersimpan abstrak atau memisahkan fungsi sisi server dari sisi klien. Jauh lebih mudah untuk membuat kode aplikasi GUI untuk memanggil prosedur daripada membuat kueri melalui kode GUI.
Keuntungan 4:Prosedur tersimpan biasanya ditulis oleh pengembang/administrator basis data. Orang yang memegang peran ini biasanya lebih berpengalaman dalam menulis kueri yang efisien dan pernyataan SQL. Ini membebaskan pengembang aplikasi GUI untuk memanfaatkan keterampilan mereka pada bagian presentasi fungsional dan grafis dari aplikasi. Jika Anda meminta orang-orang Anda melakukan tugas yang paling sesuai untuk mereka, maka Anda pada akhirnya akan menghasilkan aplikasi keseluruhan yang lebih baik.
Dengan semua itu, ada beberapa kelemahan.
Kerugian 1:Aplikasi yang melibatkan logika bisnis yang luas dan pemrosesan dapat menempatkan beban yang berlebihan pada server jika logika diimplementasikan seluruhnya dalam prosedur tersimpan. Contoh jenis pemrosesan ini termasuk transfer data, traversal data, transformasi data, dan operasi komputasi intensif. Anda harus memindahkan jenis pemrosesan ini ke proses bisnis atau komponen logika akses data, yang merupakan sumber daya yang lebih skalabel daripada server database Anda.
Kerugian 2:Jangan memasukkan semua logika bisnis Anda ke dalam prosedur tersimpan. Pemeliharaan dan kelincahan aplikasi Anda menjadi masalah ketika Anda harus mengubah logika bisnis dalam bahasa Sp. Misalnya, aplikasi ISV yang mendukung beberapa RDBMS tidak perlu memelihara prosedur tersimpan yang terpisah untuk setiap sistem.
Kekurangan 3:Menulis dan memelihara prosedur tersimpan paling sering merupakan keahlian khusus yang tidak dimiliki semua pengembang. Situasi ini dapat menyebabkan kemacetan dalam jadwal pengembangan proyek.
Saya mungkin melewatkan beberapa kelebihan dan kekurangan, jangan ragu untuk berkomentar.