Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/12/2008, 12:43
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Cuando usar procedimientos almacenados?

Existe un número de hechos ante los cuales pensar en usar sp, o por lo menos donde conviene usarlos, esto te puede dar una idea:

1. Si quieres aumentar la seguridad. Como los SP reciben parámetros específicos y cantidades exactas o de lo contrario fallan, son un buen método de evitar a ataques de SQL injection.
2. SI debes realizar consultas complejas con un conjunto acotado de parámetros, con muchos niveles de subconsultas, es mejor hacerlo por SP.
3. Si existen varias alternativas posibles de sentencias a ejecutar, pero no puedes establecer a priori cual hacerlo porque depende de la respuesta a otras consultas, puede ser conveniente hacerlo en un SP.
4. Si debes hacer un barrido de registros en una tabla, puede convenir un SP.
5. Si el proceso es normalizar tablas de datos obtenidas por cargas masivas, es mucho mejor hacerlo en un SP.
6. Cuando debes realizar un conjunto de operaciones de SQL y las respuestas de una serán las entradas de la otra, puede convenir hacerlo en SP.
7. Si debes obtener un conjuto de datos simples de una cadena de ejecuciones de SQL, es mejor hacer un SP.

No es funcional y resulta un desperdicio de recursos:
1. Hacer un SP para ejecutar un SELECT * FROM tabla..., por más complejo que sea el WHERE.
2. Resolver ecuaciones matemáticas o cálculos que requieran funciones que ya existen en los lenguajes de programación.
3. Realizar tareas de cualquier tipo que no incluyan consultas a las tablas.

Los programadores deben recordar que una base de datos es en esencia un almacén de datos con funciones específicas, y no un sustituto de las aplicaciones. No se le debe dar a la base de datos responsabilidades para las que no se diseño el motor...

El cómo, qué y cuando usar un SP y cuándo no, es tema de experiencia en el área. Muchas veces terminamos dándonos cuenta de que un conjunto X de SP que preparamos, luego son innecesarios, porque hay mejores caminos para lograr esas tareas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)