Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/11/2007, 08:26
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Re: procedimientos y query en aplicacion

Hola,

Estoy parcialmente de acuerdo con lo postado por Mario, es decir

Cita:
Sin duda lo mejor es que este en la base de datos, el procedimiento almacenado, por muchas causas:

Te sera mas facil la implementacion, porque lo trabajaras desde tu aplicacion como una "caja negra".

Te imaginas generar una nueva version de tu aplicativo cada vez, porque cambio el nombre de un campo de la tabla a la que haces referencia ? !!!!!.....
Hasta aqui, 100% de acuerdo.

Cita:
Con respecto a la velocidad, al menos que alguien diga lo contrario, me parece que es mas rapido en la base de datos, porque el procedure ya esta compilado y no pierdes tiempo de compilacion, en cambio si tu armas el select y siempre se lo mandas como un string... el motor debe interpretar la consulta, optimizarla si se puede y recien... ejecutarla.
El cache del plan de ejecucion se guarda siempre, no importa si viene desde un procedimiento o desde una aplicacion, si la consulta no cambia se reutiliza el plan de ejecucion que esta en la shared pool.

Cita:
Cuando notaras la diferencia? Si tu select es de mas o menos 1000 lineas de codigo, te recomiendo el procedure, pero son 100 o menos lineas.... la opcion de procedure es simplemente para brindar un mejor management del query.
No creo que la opcion de un procedure o guardar las consultas dentro de la aplicacion tenga que ver con la cantidad de lineas, es meramente una cuestion de diseño, en mi opinion todo lo referente a base de datos debe guardarse en base de datos, para cualquier aplicacion deberia ser transparente como se modifican o se obtienen datos.

Justamente hace unos dias atras tuve una discusion similar con un desarrollador, y simplemente le hice referencia al siguiente link, que debo decir, nunca vi una explicacion mejor, esta en ingles.

http://asktom.oracle.com/pls/asktom/...25405782527721

Saludos.