За разлика от действителния код на езика за програмиране, те:
- не е преносим (всеки db има своя собствена версия на PL/SQL. Понякога различни версии на същото базата данни са несъвместими - виждал съм го!)
- не е лесно за тестване – имате нужда от истински (dev) екземпляр на база данни, за да ги тества и по този начин модулното тестване на техния код като част от изграждане е практически невъзможно
- не може лесно да се актуализира/освобождава – трябва да ги пуснете/създадете, т.е. промените производствената база данни, за да ги освободи
- нямат поддръжка на библиотека (защо да пишете код, когато някой друг има)
- не са лесно интегрируеми с други технологии (опитайте да се обадите на уеб услуга от тях)
- те използват език приблизително толкова примитивен като Fortran и поради това са неелегантни и трудоемки, за да направят полезно кодиране, така че е трудно да се изрази бизнес логиката, въпреки че обикновено това е основната им цел
- не предлагайте отстраняване на грешки/проследяване/регистриране на съобщения и т.н. (някои dbs може да поддържат това - все пак не съм го виждал)
- липса на приличен IDE, който да помага със синтаксиса и свързването към други съществуващи процедури (напр. като Eclipse за java)
- хора, които имат умения да ги кодират, са по-редки и по-скъпи от кодиращите на приложения
- техната „висока производителност“ е мит, тъй като те се изпълняват на сървъра на базата данни, който обикновено увеличават натоварването на db сървъра, така че използването им обикновено намалява максималната ви пропускателна способност на транзакциите
- невъзможност за ефективно споделяне на константи (обикновено се решава чрез създаване на таблица и търсене на нея от вашата процедура - много неефективно)
- и др.
Ако имате много специфично за базата данни действие (напр. действие по време на транзакция за поддържане на целостта на db) или поддържате процедурите си много атомни и прости, може би бихте могли да ги обмислите.
Препоръчва се повишено внимание, когато посочвате "висока производителност" отпред. Често води до лош избор за сметка на добрия дизайн и ще ви ухапе много по-рано, отколкото си мислите.
Използвайте съхранени процедури на свой собствен риск (от някой, който е бил там и никога не иска да се върне). Моята препоръка е да ги избягвате като чума.