Foros del Web » Programación para mayores de 30 ;) » .NET »

Porque Trabajar Con Store Procedure??

Estas en el tema de Porque Trabajar Con Store Procedure?? en el foro de .NET en Foros del Web. hOLAS, tengo esta duda, porq trabajar con SP y no hacer los Insert, delte, etc dentro de la pagina??? Gracias de antemano.....
  #1 (permalink)  
Antiguo 30/06/2005, 14:35
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 4 meses
Puntos: 0
Información Porque Trabajar Con Store Procedure??

hOLAS, tengo esta duda, porq trabajar con SP y no hacer los Insert, delte, etc dentro de la pagina???

Gracias de antemano..
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
  #2 (permalink)  
Antiguo 30/06/2005, 15:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
- De entrada los SP se ejecutan en el servidor de BD.
- Al no escribir todo el enunciado SQL en tu pagina, estas enviando menos datos entre servidores por lo tanto usas menos ancho de banda.
- Tienes la ventaja de que si te equivocaste en la sentencia SQL, lo puedes modificar directamente al server de BD y no necesitas recompilar tu aplicacion
- Los SP son sumamente eficientes cuando los combinas con cursores.
- Tienes un codigo mas "limpio", esto te da "elegancia".
- Si cambias de plataforma, ya no vas a tener que migrar el codigo SQL de tu aplicacion.

Lo que se traduce en que si usas SP en tu aplicacion, va a ser mas eficiente, rapida y de catego ;)
  #3 (permalink)  
Antiguo 30/06/2005, 15:25
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
Pues mi opinion personal respecto al tema es simple:

1.- Cuando creas un Procedimientos Almacenado tu sentencia SQL es precompilada por el motor de bases de datos, de tal manera de que cada vez que esta es llamada no hace falta recompilar la sentencia sql para que pueda ejecutarse, solo le tienes que pasar los parametros necesarios si es que los necesitas para que se ejecute y regrese resultados, si no usaras procedimientos almacenados tu sentencia SQL siempre seria transportada a la base de datos, el motor de la base de datos la compilaria, la ejecutaria y te mandaria los resultados si este fuese el caso. Para empezar lde esta manera la informacion que viaja desde tu aplicacion hasta el servidor de BD es mas que si llamaras solamente a los procedimientos almacenados, luego, el proceso es un poco mas lento pues el motor se tendria que dar a la tarea de compilar toda la sentencia SQL y luego regresarte los resultados..

Ventajas: Es mas rápido y eficiente utilizar Procedimientos Almacenados y otra es la seguridad, por ahi lei alguna vez que es mas inseguro enviar la cadena SQL pues puede ser propenso a ataques de inyeccion de sentencias SQL en tus formas de captura, a diferencia de los procedimientos almacenados que son mas seguros en este aspecto.

Por ejemplo :

Imaginate que tienes una sentencia que te regresa el monto de la cuenta de un empleado de la siguente manera:

"Select monto FROM Empleados Where Id_Empleado = " + txtIdEmpleado.Text + ""

Entonces en el txtIdEmpleado podria escribir un Id_Empleado asi:

suponiendo que 1 es el Id

"1 Delete * FROM Empleados"

lo que daria por resultado:

"Select monto FROM Empleados Where Id_Empleado = 1 Delete * FROM Empleados"

¿que crees que pasaria si no validas cosas como estas?, a eso se le llama inyecion de código SQL, cosa a las que no son propensas los procedimientos almacenados pues ya estan precompilados, lo mas que podria pasar seria que te marcara una exepcion pues ese Id no existe.

En fin espero que mi explicación te pueda convencer.
  #4 (permalink)  
Antiguo 01/07/2005, 01:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Comentar que esto de la inyection sql se puede solucionar tambien haciendo la sql con parametros.
  #5 (permalink)  
Antiguo 01/09/2005, 13:42
 
Fecha de Ingreso: abril-2005
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
porque lo de Store procedure??

Esta muy bueno la definicion y se ajusta con los concepto, y mejor aun esta el ejemplo, pero quisiera conseguir informacion de como ejecutar un store procedure que me devuelva una tabla..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.