Uno de los principales diferenciadores es si está escribiendo el "único frente verdadero" o si la base de datos es la pieza central de su aplicación.
Si va a tener múltiples frontales, los procedimientos almacenados tienen mucho sentido porque reduce los gastos generales de mantenimiento. Si está escribiendo solo una interfaz, los procedimientos almacenados son un fastidio, porque pierde mucha flexibilidad al cambiar su conjunto de datos ya que su front end necesita cambiar, además ahora tiene que hacer mantenimiento de código, control de versión, etc. en dos lugares . Las bases de datos son un verdadero dolor para mantenerse sincronizado con los repositorios de código.
Finalmente, si está codificando varias bases de datos (código compatible con Oracle y SQL, por ejemplo), evitaría los procedimientos almacenados por completo.
En determinadas circunstancias excepcionales, después de la creación de perfiles, determine que algunos procedimientos almacenados limitados le son útiles. Esta situación se presenta mucho menos de lo que las personas piensan que es.
Esto es BS. No es más difícil controlar la versión del código SQL en comparación con el código C++. En muchos sentidos, es mucho más fácil revisar las cosas en el DB; altere un procedimiento almacenado, y listo, en lugar de recompilar y volver a implementar bibliotecas y ejecutables. – Joe