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

#6 Maxi
30/12/2004 - 13:16 | Informe spam
Jjaja, y que aun no has brindado :-)


Salu2
Maxi


"Eladio Rincón" escribió en el mensaje
news:uYIv$
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
#7 Asterion
30/12/2004 - 15:35 | Informe spam
Si bien es bueno hacerlo genérico por facilidad de mantenimiento del código,
tiene una desventaja fundamental: no se guarda en caché el plan de ejecución
de los sp más usados, con lo cual perdemos la ventaja fundamental del sp que
es la rapidez de ejecución.
Hay otras desventajas también pero esta es fundamental.
Respuesta Responder a este mensaje
#8 Maxi
30/12/2004 - 15:41 | Informe spam
Hola, no comparto esto que decis ;) es cierto lo del plan de ejecucion pero
en la version 2k de SqlServer no notaras tantas diferencias como si se
notaban en la 7.0. Ahora, lo que se pierde y si que es un problemon es la
seguridad de la aplicacion, aca si que estas en el horno y una de las
grandes razones por usar SP's es justamente el aislamiento de objetos y la
seguridad que estos ofrecen.

Un abrazo


Salu2
Maxi


"Asterion" escribió en el mensaje
news:

Si bien es bueno hacerlo genérico por facilidad de mantenimiento del
código,
tiene una desventaja fundamental: no se guarda en caché el plan de
ejecución
de los sp más usados, con lo cual perdemos la ventaja fundamental del sp
que
es la rapidez de ejecución.
Hay otras desventajas también pero esta es fundamental.

Respuesta Responder a este mensaje
#9 Asterion
30/12/2004 - 16:37 | Informe spam
Es cierto lo de la seguridad, pero fijate que la pregunta original se refiere
a rendimiento y en ningún momento se refiere a seguridad.

Si hablamos de rendimiento, creo que vamos a coincidir que no es lo mismo no
tener guardados los planes de ejecución de los sp porque los implementás en
forma genérica(con sql dinámico) a tener los más accedidos en el caché.
Respuesta Responder a este mensaje
#10 Maxi
30/12/2004 - 17:18 | Informe spam
Si amigo, el tema de rendimiento es asi, pero no solo hay q ver el
rendimiento, es mas si probas un Sql-dinamico a uno no dinamico en sql2k con
sp3a no notaras tanta diferencia en performance, es mas hasta en algunos
casos es insignificante, y esto se debe a como se ha cambio el motor de
consultas de sql en sus distintas versiones.

Esto porque lo digo, a nivel usuario no notara grandes diferencias en
performance, entonces podria pensar que el uso del Sql-dinamico es valido y
lo pondria en marcha, si no le comentamos que podra tener enormes problemas
de seguridad, entonces estariamos haciendo algo mal no? por eso le explique
que el mayor problema de SqlDinamico es la seguridad, y un sistema inseguro
nadie lo quiere, tampoco un sistema lento claro esta ;)


Salu2
Maxi


"Asterion" escribió en el mensaje
news:
Es cierto lo de la seguridad, pero fijate que la pregunta original se
refiere
a rendimiento y en ningún momento se refiere a seguridad.

Si hablamos de rendimiento, creo que vamos a coincidir que no es lo mismo
no
tener guardados los planes de ejecución de los sp porque los implementás
en
forma genérica(con sql dinámico) a tener los más accedidos en el caché.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida