SP,s o consultas directas a la BBDD?

07/11/2005 - 14:38 por Angel Luis | Informe spam
Hola a todos,

Me gustaría que me dierais vuestras opiniones acerca de que es más
aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en sql
server 2000 a la hora de realizar las diferentes transacciones y accesos al
server, utilizar Store Procedures o armar las consultas y atacar
directamente a las tablas?

La aplicación es una aplicación cliente-servidor con 6 conexiones
simultáneas al server como mucho.
Deciros también que no se hace ningún tipo de ataque a dicho server atraves
de Internet ya que los clientes están siempre dentro de la propia LAN de la
empresa.
Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
ataco directamente a la BBDD .

Os agradecería que me además de inclinaros por una u otra opción me dierais
las razones de porque utilizar SP,s o porque consultas en SQL directas a
las tablas.

Gracias de antemano.

Saludos

Angel Luis

soport-e

Preguntas similare

Leer las respuestas

#1 Maxi
07/11/2005 - 14:55 | Informe spam
Hola, el uso de SP tiene estas ventajas

1) Seguridad (no le das acceso directo a las tablas)
2) Performance (Al tener el plan de ejecucion en cache el motor no debe ir
calculandolo por cada query, y ademas disminuis el trafico via la red)

3) Mantenimiento: El cambio se realiza en un solo lugar (servidor), tambien
si cambia la estructura es muy simple buscar que Stores estan haciendo
referencia a ella.


Salu2
Maxi [MVP SQL SERVER]


"Angel Luis" escribió en el mensaje
news:ePx%
Hola a todos,

Me gustaría que me dierais vuestras opiniones acerca de que es más
aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en sql
server 2000 a la hora de realizar las diferentes transacciones y accesos
al
server, utilizar Store Procedures o armar las consultas y atacar
directamente a las tablas?

La aplicación es una aplicación cliente-servidor con 6 conexiones
simultáneas al server como mucho.
Deciros también que no se hace ningún tipo de ataque a dicho server
atraves
de Internet ya que los clientes están siempre dentro de la propia LAN de
la
empresa.
Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
ataco directamente a la BBDD .

Os agradecería que me además de inclinaros por una u otra opción me
dierais
las razones de porque utilizar SP,s o porque consultas en SQL directas a
las tablas.

Gracias de antemano.

Saludos

Angel Luis

soport-e


Respuesta Responder a este mensaje
#2 Angel Luis
07/11/2005 - 15:05 | Informe spam
Hola Maxi, gracias por tu rápida respuesta.
Por lo que me comentas con los SP´s ganaré en velocidad en cuanto al tiempo
de ejecución de las query's , o me confundo?

La verdad es que después de tu explicación tengo claro que voy a actualizar
mi aplicación sustituyendo las consultas directas por SP,s.

Saludos
Angel Luis
soport-e

"Maxi" escribió en el mensaje
news:
Hola, el uso de SP tiene estas ventajas

1) Seguridad (no le das acceso directo a las tablas)
2) Performance (Al tener el plan de ejecucion en cache el motor no debe ir
calculandolo por cada query, y ademas disminuis el trafico via la red)

3) Mantenimiento: El cambio se realiza en un solo lugar (servidor),


tambien
si cambia la estructura es muy simple buscar que Stores estan haciendo
referencia a ella.


Salu2
Maxi [MVP SQL SERVER]


"Angel Luis" escribió en el mensaje
news:ePx%
> Hola a todos,
>
> Me gustaría que me dierais vuestras opiniones acerca de que es más
> aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en


sql
> server 2000 a la hora de realizar las diferentes transacciones y accesos
> al
> server, utilizar Store Procedures o armar las consultas y atacar
> directamente a las tablas?
>
> La aplicación es una aplicación cliente-servidor con 6 conexiones
> simultáneas al server como mucho.
> Deciros también que no se hace ningún tipo de ataque a dicho server
> atraves
> de Internet ya que los clientes están siempre dentro de la propia LAN de
> la
> empresa.
> Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
> ataco directamente a la BBDD .
>
> Os agradecería que me además de inclinaros por una u otra opción me
> dierais
> las razones de porque utilizar SP,s o porque consultas en SQL directas


a
> las tablas.
>
> Gracias de antemano.
>
> Saludos
>
> Angel Luis
>
> soport-e
>
>


Respuesta Responder a este mensaje
#3 Ivan Pascual
07/11/2005 - 15:06 | Informe spam
Yo te responderia que sin dudarlo es mejor utilizar stored procedures.
Por tres simples motivos:
- Si desde Vb envias una sentencia SQL, el motor de base de datos
primero compila la sentencia y despues la ejecuta, mientras que en una
Stored procedure no pasa eso, la sentencia ya esta compilada.
- Mejora el mantenimiento de la aplicacion, si tienes una buena
estructura hay situaciones que tan solo modificando la stored el error ya no
se lanza, evitas tener que realizar un nuevo exe.
- Temas de seguridad.

Seguro que hay mas razones pero son las ue a mi se me ocurren a bote pronto.

Ivan Pascual
"Angel Luis" escribió en el mensaje
news:ePx%
Hola a todos,

Me gustaría que me dierais vuestras opiniones acerca de que es más
aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en sql
server 2000 a la hora de realizar las diferentes transacciones y accesos
al
server, utilizar Store Procedures o armar las consultas y atacar
directamente a las tablas?

La aplicación es una aplicación cliente-servidor con 6 conexiones
simultáneas al server como mucho.
Deciros también que no se hace ningún tipo de ataque a dicho server
atraves
de Internet ya que los clientes están siempre dentro de la propia LAN de
la
empresa.
Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
ataco directamente a la BBDD .

Os agradecería que me además de inclinaros por una u otra opción me
dierais
las razones de porque utilizar SP,s o porque consultas en SQL directas a
las tablas.

Gracias de antemano.

Saludos

Angel Luis

soport-e


Respuesta Responder a este mensaje
#4 Maxi
07/11/2005 - 15:10 | Informe spam
Hola, en la mayoria de los casos si!! la query guarda el plan de ejecucion y
ademas diminuyen el trafico por la red :-)



Salu2
Maxi [MVP SQL SERVER]


"Angel Luis" escribió en el mensaje
news:
Hola Maxi, gracias por tu rápida respuesta.
Por lo que me comentas con los SP´s ganaré en velocidad en cuanto al
tiempo
de ejecución de las query's , o me confundo?

La verdad es que después de tu explicación tengo claro que voy a
actualizar
mi aplicación sustituyendo las consultas directas por SP,s.

Saludos
Angel Luis
soport-e

"Maxi" escribió en el mensaje
news:
Hola, el uso de SP tiene estas ventajas

1) Seguridad (no le das acceso directo a las tablas)
2) Performance (Al tener el plan de ejecucion en cache el motor no debe
ir
calculandolo por cada query, y ademas disminuis el trafico via la red)

3) Mantenimiento: El cambio se realiza en un solo lugar (servidor),


tambien
si cambia la estructura es muy simple buscar que Stores estan haciendo
referencia a ella.


Salu2
Maxi [MVP SQL SERVER]


"Angel Luis" escribió en el mensaje
news:ePx%
> Hola a todos,
>
> Me gustaría que me dierais vuestras opiniones acerca de que es más
> aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en


sql
> server 2000 a la hora de realizar las diferentes transacciones y
> accesos
> al
> server, utilizar Store Procedures o armar las consultas y atacar
> directamente a las tablas?
>
> La aplicación es una aplicación cliente-servidor con 6 conexiones
> simultáneas al server como mucho.
> Deciros también que no se hace ningún tipo de ataque a dicho server
> atraves
> de Internet ya que los clientes están siempre dentro de la propia LAN
> de
> la
> empresa.
> Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
> ataco directamente a la BBDD .
>
> Os agradecería que me además de inclinaros por una u otra opción me
> dierais
> las razones de porque utilizar SP,s o porque consultas en SQL directas


a
> las tablas.
>
> Gracias de antemano.
>
> Saludos
>
> Angel Luis
>
> soport-e
>
>






Respuesta Responder a este mensaje
#5 Alejandro Mesa
07/11/2005 - 15:28 | Informe spam
Angel Luis,

Hay muchas razones para que uses procedimeintos almacenados en vez de crear
las sentencias dinamicamente en la aplicacion cliente. Entre ellas:

- Codigo centralizado. Si debes cambiar algo, lo haces en la base de datos
sin interferir con la aplicacion cliente. En cambio deberias cambiar todas
las aplicaciones clientes donde se requiera el cambio.
- Cada vez que tu aplicacion envia una sentencia, sql server debe chequear
la sintaxis y compilar la sentencia, en cambio con sp, sql server puede
reusar el plan de ejecucion. Queda decir que si usas sp_executesql desde la
aplicacion cliente, tambien se puede reusar el plan de ejecucion
- Inyeccion de codigo hacia sql server. Debes chequear que al armar las
sentencias dinamicamente en la aplicacion cleite, el usuario no haya
inyectado codigo hacia sql. Este tipo de ataque puede ser evitado si usamos
sps y estos no crean sentencias dinamicas mediante la concatenacion de
parametros
- Reduccion de trafico en la red, pues no es lo mismo hacer la llamada a un
sp que enviar todo el mamotrepo sobre la red.
- Seguridad, puesto que los sps se ejecutan bajo el contexto de seguridad
del creador y por lo tanto quien lo ejecuta no necesita tener permisos de
acceso directo sobre las tablas manipuladas por el sp. Esto cambia si el sp
usa sql dinamico

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

Inyeccion SQL
http://sql.manivesa.com/Tutoriales+...T/150.aspx

La inyeccion de codigo hacia sql server no esta solamente asosiada a
aplicaciones web, tambien a aplicaciones windows donde se arma la sentencia
de forma dinamica usando las entradas del usuario para concatenar a una
cadena.


AMB

"Angel Luis" wrote:

Hola a todos,

Me gustaría que me dierais vuestras opiniones acerca de que es más
aconsejable implementar en un proyecto en V.B. 6.0 contra una BBDD en sql
server 2000 a la hora de realizar las diferentes transacciones y accesos al
server, utilizar Store Procedures o armar las consultas y atacar
directamente a las tablas?

La aplicación es una aplicación cliente-servidor con 6 conexiones
simultáneas al server como mucho.
Deciros también que no se hace ningún tipo de ataque a dicho server atraves
de Internet ya que los clientes están siempre dentro de la propia LAN de la
empresa.
Actualmente no utilizo ningún tipo de SP sino que armo las consultas y
ataco directamente a la BBDD .

Os agradecería que me además de inclinaros por una u otra opción me dierais
las razones de porque utilizar SP,s o porque consultas en SQL directas a
las tablas.

Gracias de antemano.

Saludos

Angel Luis

soport-e



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