Store Procedure + Todo en un solo Procedimiento (Update, Delete, Inser,listar, buscar)

08/10/2009 - 23:06 por Don Quijote de Nicaragua | Informe spam
Hola a todos, me gustaría preguntar algo, estamos elaborando un
sistema y parece que tendremos que crear muchisiimo procedimientos
almacenados, entonces estamos tomando la desición de poner digamos si
es el procedimiento de Pais, dejar un único procedimiento denominado
"spPais" y poner dentro de él las opciones de nuevo, modificar,
borrar, listar, buscar, etc, y lo identificariamos por un parametro,
creen ustedes que estro tendria algún efecto en el rendimiento al
momento de ejecutarlo.

CREATE PROCEDURE spEjemplo
@valor1 integer = NULL ,
@valor2 VARCHAR(200) NULL,
@nType integer
AS BEGIN
IF @nType=1 INSERT INTO ..
ELSE IF ...@nType=2
UPDATE CountryId=@CountryId;
ELSE IF @nType=0 DELET
END

Muchas Gracias.
Don Quijote de Nicaragua.
 

Leer las respuestas

#1 Carlos M. Calvelo
08/10/2009 - 23:37 | Informe spam
Hola Don QdN,

On 8 okt, 23:06, Don Quijote de Nicaragua wrote:
Hola a todos, me gustaría preguntar algo, estamos elaborando un
sistema y parece que tendremos que crear muchisiimo procedimientos
almacenados, entonces estamos tomando la desición de poner digamos si
es el procedimiento de Pais, dejar un único procedimiento denominado
"spPais" y poner dentro de él las opciones de nuevo, modificar,
borrar, listar, buscar, etc, y lo identificariamos por un parametro,
creen ustedes que estro tendria algún efecto en el rendimiento al
momento de ejecutarlo.

CREATE PROCEDURE spEjemplo
@valor1 integer = NULL ,
@valor2 VARCHAR(200) NULL,
@nType integer
AS BEGIN
IF @nType=1 INSERT INTO ..
ELSE IF =2
UPDATE CountryId=@CountryId;
ELSE IF @nType=0 DELET
END



Mi consejo es que paréis, volváis al cruze donde habéis tomado esa
decisión y hagáis una reevaluación.

Las operaciones select, insert, update y delete tal como las ofrece
SQL son para eso. Comparado con lo que pueden hacer esas
operaciones, los procedimientos que os estáis planteando son
irrisorios. Entonces la pregunta que haces sobre rendimiento
es (para mi) totalmente irrelevante.

Haceros estas preguntas:

Que van a hacer esos procedimientos que no se pueda hacer con
la combinación de las operaciones normales, constaints, triggers
y vistas? (Piensa también en operaciones 'set at a time'!)
Significa la existencia de esos procedimientos que vas a esconder
la estructura de la bbdd y no serán posibles las operaciones
normales? Si no es esí... que sentido tiene eso? Y si sí es así:
estáis haciendo un buen cambio en cuanto a interfaz con las
(también futuras) aplicaciones?

Saludos,
Carlos

Preguntas similares