Una consulta con respecto a los SP's

30/12/2004 - 00:32 por smc | Informe spam
Hola otra vez.
Mi consulta es algo similar al expuesto por Pedro Jose
Caceres - Muchísimos SPs y Funciones ..

Cuando me dedico a hacer mantenimientos a mi Tablas en un
BD, yo prefiero hacer procedimientos genericos, donde me
reciba ciertos parametros para realizar la transaccion.

Por ejemplo: Cuando hago un delete el sp recible el
parametro tabla, campo clave y valor clave.

Los casos con Insert y Update los manejo en un mismo sp,
donde reciben como parametro un tipo previo.

Finalizando necesito un selects clasico (es decir de
simple de visualizacion), uso un sp que lista y mando 3
parametros como en el 1ª caso.

Por ahi me dijeron que no era recomendable manejarlo de
esa manera, porque estoy forzando a mi servidor SQL, pero
yo no veo lo malo. Porque supuestamente mi servidor es
potente como para atender varias transacciones
simultaneamente.. ahora claro q me da pena que en un
determinado momento todos mis clientes (15...por ahora)
acedan a la funcion mas accedida por todos, que es el sp
que lista.

Y yo quisiera saber su opinion.. es recomendable o no?

De antemano gracias por la colaboracion..


Atte,
smc

Preguntas similare

Leer las respuestas

#1 MAXI
30/12/2004 - 00:45 | Informe spam
Hola, pues no es para nada recomendado hacer lo que propones y te explico
porque:

El usar Sp's genericos obliga a usar sql-dinamico, y esta tecnica es muy
mala de verdad, los grandes motivos de porque es mala son los siguientes

1) Es insegura
2) Es ineficiente

La primera es muy dificil porque si dentro de un Sp pones sql-dinamico
deberas no solo darle al usuario permisos sobre el sp sino sobre los objetos
del sql-dinamico, con lo cual uno de los grandes beneficios de tener sp se
pierde y ya no tendria mucho sentido armar sp

El otro tema es la performance, aca hay una baja considerable con el uso de
Sql-Dinamico.

PAra que amplies el tema y no te quedes solo con lo que digo yo, te paso
este link

http://www.hayes.ch/sql/sql_dinamico.html

Ahora, yo tengo BDD con mas de 1000 Sp's y nunca tuve problemas con nada, es
mas si sos ordenado es muy simple.

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

"smc" escribió en el mensaje
news:07dd01c4edfe$b289fc00$
Hola otra vez.
Mi consulta es algo similar al expuesto por Pedro Jose
Caceres - Muchísimos SPs y Funciones ..

Cuando me dedico a hacer mantenimientos a mi Tablas en un
BD, yo prefiero hacer procedimientos genericos, donde me
reciba ciertos parametros para realizar la transaccion.

Por ejemplo: Cuando hago un delete el sp recible el
parametro tabla, campo clave y valor clave.

Los casos con Insert y Update los manejo en un mismo sp,
donde reciben como parametro un tipo previo.

Finalizando necesito un selects clasico (es decir de
simple de visualizacion), uso un sp que lista y mando 3
parametros como en el 1ª caso.

Por ahi me dijeron que no era recomendable manejarlo de
esa manera, porque estoy forzando a mi servidor SQL, pero
yo no veo lo malo. Porque supuestamente mi servidor es
potente como para atender varias transacciones
simultaneamente.. ahora claro q me da pena que en un
determinado momento todos mis clientes (15...por ahora)
acedan a la funcion mas accedida por todos, que es el sp
que lista.

Y yo quisiera saber su opinion.. es recomendable o no?

De antemano gracias por la colaboracion..


Atte,
smc
Respuesta Responder a este mensaje
#2 smc
30/12/2004 - 01:01 | Informe spam
Muchas gracias MAX diste justo en el blanco..

Atte,

smc
Respuesta Responder a este mensaje
#3 Ricardo Passians
30/12/2004 - 01:18 | Informe spam
Uno de los problemas, entre otros, de eso es que el servidor no podrá tener
precompilado el plan de ejecución de los SP's, por tanto no aprovechas la
ventaja en performance de tenerlo en SP's.



"smc" wrote in message
news:07dd01c4edfe$b289fc00$
Hola otra vez.
Mi consulta es algo similar al expuesto por Pedro Jose
Caceres - Muchísimos SPs y Funciones ..

Cuando me dedico a hacer mantenimientos a mi Tablas en un
BD, yo prefiero hacer procedimientos genericos, donde me
reciba ciertos parametros para realizar la transaccion.

Por ejemplo: Cuando hago un delete el sp recible el
parametro tabla, campo clave y valor clave.

Los casos con Insert y Update los manejo en un mismo sp,
donde reciben como parametro un tipo previo.

Finalizando necesito un selects clasico (es decir de
simple de visualizacion), uso un sp que lista y mando 3
parametros como en el 1ª caso.

Por ahi me dijeron que no era recomendable manejarlo de
esa manera, porque estoy forzando a mi servidor SQL, pero
yo no veo lo malo. Porque supuestamente mi servidor es
potente como para atender varias transacciones
simultaneamente.. ahora claro q me da pena que en un
determinado momento todos mis clientes (15...por ahora)
acedan a la funcion mas accedida por todos, que es el sp
que lista.

Y yo quisiera saber su opinion.. es recomendable o no?

De antemano gracias por la colaboracion..


Atte,
smc
Respuesta Responder a este mensaje
#4 Eladio Rincón
30/12/2004 - 11:27 | Informe spam
Hola Ricardo,

es normal que el plan de ejecución y la compilación de los 1000
procedimientos almacenado no permanezcan en caché; sin embargo, cuanto más
se use un procedimiento almacenado, mayor será la probabilidad de que el su
plan de ejecución y su compilación se encuentre en caché; debemos recordar
que el motor de SQL Server decide esto en base a la complejidad de la
compilación del procedimiento, frecuencia de uso, "similitudes" de
ejecución, opciones SET, ...

Eladio Rincón
SQL Server MVP
http://www.siquelnet.com

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google:
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Ricardo Passians" wrote in message
news:
Uno de los problemas, entre otros, de eso es que el servidor no podrá


tener
precompilado el plan de ejecución de los SP's, por tanto no aprovechas la
ventaja en performance de tenerlo en SP's.



"smc" wrote in message
news:07dd01c4edfe$b289fc00$
Hola otra vez.
Mi consulta es algo similar al expuesto por Pedro Jose
Caceres - Muchísimos SPs y Funciones ..

Cuando me dedico a hacer mantenimientos a mi Tablas en un
BD, yo prefiero hacer procedimientos genericos, donde me
reciba ciertos parametros para realizar la transaccion.

Por ejemplo: Cuando hago un delete el sp recible el
parametro tabla, campo clave y valor clave.

Los casos con Insert y Update los manejo en un mismo sp,
donde reciben como parametro un tipo previo.

Finalizando necesito un selects clasico (es decir de
simple de visualizacion), uso un sp que lista y mando 3
parametros como en el 1ª caso.

Por ahi me dijeron que no era recomendable manejarlo de
esa manera, porque estoy forzando a mi servidor SQL, pero
yo no veo lo malo. Porque supuestamente mi servidor es
potente como para atender varias transacciones
simultaneamente.. ahora claro q me da pena que en un
determinado momento todos mis clientes (15...por ahora)
acedan a la funcion mas accedida por todos, que es el sp
que lista.

Y yo quisiera saber su opinion.. es recomendable o no?

De antemano gracias por la colaboracion..


Atte,
smc


Respuesta Responder a este mensaje
#5 Eladio Rincón
30/12/2004 - 11:31 | Informe spam
Mis disculpas Ricardo,

leí mal el mensaje original y pensé que argumentabas que no fuera
recomendado el uso de muchos procedimientos almacenados; creo que leí el
mensaje de Maxi en el que comentaba que usaba 1000 SP's y se me torcieron un
poco las neuronas...

Disculpas

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Eladio Rincón" wrote in message
news:Oj$
Hola Ricardo,

es normal que el plan de ejecución y la compilación de los 1000
procedimientos almacenado no permanezcan en caché; sin embargo, cuanto más
se use un procedimiento almacenado, mayor será la probabilidad de que el


su
plan de ejecución y su compilación se encuentre en caché; debemos recordar
que el motor de SQL Server decide esto en base a la complejidad de la
compilación del procedimiento, frecuencia de uso, "similitudes" de
ejecución, opciones SET, ...

Eladio Rincón
SQL Server MVP
http://www.siquelnet.com

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google:
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Ricardo Passians" wrote in message
news:
> Uno de los problemas, entre otros, de eso es que el servidor no podrá
tener
> precompilado el plan de ejecución de los SP's, por tanto no aprovechas


la
> ventaja en performance de tenerlo en SP's.
>
>
>
> "smc" wrote in message
> news:07dd01c4edfe$b289fc00$
> Hola otra vez.
> Mi consulta es algo similar al expuesto por Pedro Jose
> Caceres - Muchísimos SPs y Funciones ..
>
> Cuando me dedico a hacer mantenimientos a mi Tablas en un
> BD, yo prefiero hacer procedimientos genericos, donde me
> reciba ciertos parametros para realizar la transaccion.
>
> Por ejemplo: Cuando hago un delete el sp recible el
> parametro tabla, campo clave y valor clave.
>
> Los casos con Insert y Update los manejo en un mismo sp,
> donde reciben como parametro un tipo previo.
>
> Finalizando necesito un selects clasico (es decir de
> simple de visualizacion), uso un sp que lista y mando 3
> parametros como en el 1ª caso.
>
> Por ahi me dijeron que no era recomendable manejarlo de
> esa manera, porque estoy forzando a mi servidor SQL, pero
> yo no veo lo malo. Porque supuestamente mi servidor es
> potente como para atender varias transacciones
> simultaneamente.. ahora claro q me da pena que en un
> determinado momento todos mis clientes (15...por ahora)
> acedan a la funcion mas accedida por todos, que es el sp
> que lista.
>
> Y yo quisiera saber su opinion.. es recomendable o no?
>
> De antemano gracias por la colaboracion..
>
>
> Atte,
> smc
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida