Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/05/2007, 17:55
Avatar de Yaraher
Yaraher
 
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años
Puntos: 9
Re: Procedimientos almacenados

Un procedimiento almacenado es básicamente un conjunto de lógica procesado y "compilado" en la BD.

Cada vez que tu ejecutas una consulta directamente en la BD, el SGDB convertirá ésta a un conjunto de instrucciones internas para ordenarla y establecer pasos heurísticos para encontrar la información solicitada o ejecutar el proceso en el conjunto de tablas.

Ese paso toma su tiempo, el cual puedes no sentirlo en una aplicación pequeña pero sí en una con mayor número de transacciones concurrentes.

En un Stored Procedure, luego de ser creado, el SGDB creará en ese instante la mejor ruta y forma de realizar la consulta. De esa manera, cada vez que lo ejecutas, ya sabe como realizarla de manera más eficiente y rápida, sin tratar de realizarla cada vez. El resultado será más rápido y eficiente.

Otro beneficio más indirecto del uso de SPs en tu capa de BD, es la ventaja de tener el código optimizado en un sólo lugar. En algunos proyectos he realizado SPs que se encargan de enviar los registros de todas las tablas, enviandole el nombre de esta en un parámetro o actividades similares (obviamente, la parte de seguridad se trabajó correctamente).

De esa manera, si luego cambias la lógica para insertar o enviar datos, lo haces en un sólo lugar sin tener que tocar el código de tu aplicación para cambiar las consultas.