Tidak seperti kode bahasa pemrograman yang sebenarnya, mereka:
- tidak portabel (setiap db memiliki versi PL/SQLnya sendiri. Terkadang versi yang berbeda sama database tidak kompatibel - saya pernah melihatnya!)
- tidak mudah diuji - Anda memerlukan nyata (dev) database instance untuk mengujinya dan dengan demikian menguji unit kode mereka sebagai bagian dari build hampir tidak mungkin
- tidak mudah diperbarui/dirilis - Anda harus menghapus/membuatnya, yaitu memodifikasi db produksi untuk merilisnya
- tidak memiliki dukungan perpustakaan (mengapa menulis kode ketika orang lain memilikinya)
- tidak mudah diintegrasikan dengan teknologi lain (coba hubungi layanan web dari mereka)
- mereka menggunakan bahasa yang sama primitifnya dengan Fortran dan karenanya tidak elegan dan melelahkan untuk menyelesaikan pengkodean yang bermanfaat, sehingga sulit untuk mengekspresikan logika bisnis, meskipun biasanya itulah tujuan utama mereka
- jangan menawarkan debugging/tracing/message-logging dll (beberapa db mungkin mendukung ini - saya belum melihatnya)
- tidak memiliki IDE yang layak untuk membantu sintaks dan menautkan ke prosedur lain yang ada (misalnya seperti yang dilakukan Eclipse untuk java)
- orang yang ahli dalam pengkodean lebih jarang dan lebih mahal daripada pembuat kode aplikasi
- "kinerja tinggi" mereka adalah mitos, karena mereka mengeksekusi di server database mereka biasanya meningkatkan beban server db, jadi menggunakannya biasanya akan mengurangi throughput transaksi maksimum Anda
- ketidakmampuan untuk membagikan konstanta secara efisien (biasanya diselesaikan dengan membuat tabel dan menanyakannya dari dalam prosedur Anda - sangat tidak efisien)
- dst.
Jika Anda memiliki tindakan yang sangat spesifik untuk basis data (misalnya tindakan dalam transaksi untuk menjaga integritas db), atau menjaga agar prosedur Anda sangat atomik dan sederhana, mungkin Anda dapat mempertimbangkannya.
Perhatian disarankan saat menentukan "kinerja tinggi" di depan. Ini sering menyebabkan pilihan yang buruk dengan mengorbankan desain yang baik dan itu akan menggigit Anda lebih cepat dari yang Anda kira.
Gunakan prosedur tersimpan dengan risiko Anda sendiri (dari seseorang yang pernah ke sana dan tidak pernah ingin kembali). Rekomendasi saya adalah untuk menghindari mereka seperti wabah.