Foros del Web » Programando para Internet » ASPX (.net) »

Beneficio de hacer una consulta desde ASP.NET usando un SELECT o StoreProcedure

Estas en el tema de Beneficio de hacer una consulta desde ASP.NET usando un SELECT o StoreProcedure en el foro de ASPX (.net) en Foros del Web. Hola, Mi pregunta quizas sea media estupida pero la verdad es que necesito hacerla. Tengo una tabla en una base SQL 2008 donde hay una ...
  #1 (permalink)  
Antiguo 10/10/2011, 19:03
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
Beneficio de hacer una consulta desde ASP.NET usando un SELECT o StoreProcedure

Hola,

Mi pregunta quizas sea media estupida pero la verdad es que necesito hacerla.

Tengo una tabla en una base SQL 2008 donde hay una lista de usuarios.
Tengo una funcion en asp.net que verifica si el usuario existe o no en la columna.

Para verificar hago un SELECT COUNT, si me devuelve 1 es que existe, si me devuelve 0 es que no existe.


Mi pregunta es la siguiente:
A nivel performance, es lo mismo hacer el SELECT COUNT desde la codebehind de la pagina que de un store procedure?

Porque para mi es mejor hacer el select desde la funcion, sin tener que llamar un store procedure. Pero no se que me conviene mas a nivel performance.

Gracias!!
  #2 (permalink)  
Antiguo 10/10/2011, 21:12
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Beneficio de hacer una consulta desde ASP.NET usando un SELECT o StoreProc

hasta donde tengo entendido un store procedure tiene mejor rendimiento, se procesa mas rápido y te puede llegar a evitar en cierta medida los ataques por sql injection ya que para modificar la consulta se necesitan ciertos permisos que no cualquiera tiene.
  #3 (permalink)  
Antiguo 10/10/2011, 21:41
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Beneficio de hacer una consulta desde ASP.NET usando un SELECT o StoreProc

Hola Ag666. Sabes tenes razon. Despues de que me dijiste eso me diste una idea y me puse a buscar por internet y encontre esto:

Seguridad: nos dan la posibilidad de no darles acceso directo a los usuarios a las tablas del sistema, sino que por medio de un Store (lo podriamos ver como un puente) dar acceso a ejecutarlo pero que el usuario no tenga acceso directos sobre las tablas, esto tiene enormes ventajas de seguridad ya que no es muy buena idea que un usuario se pueda conectar al servidor y poder hacer un select por ej sobre la tabla Customers y le muestre todos los campos o bien insertar valores como quiere.

Centralizacion del codigo: Los Stores estan dentro de la base de datos con lo cual el codigo esta centralizado, si lo tuvieramos en las aplicaciones ese codigo podria estar en mas de un lugar y seria mas complicado luego a la hora de hacer mantenimiento, por ej: agregar una columna: si manejamos Stores es muy simple poder ver cuales afectaban a la tabla modificada para poderlos tocar, de la otra manera hay que hacer un rastreo mucho mayor y mas complicado a la vez.

Performance: Depende del Store que hagamos (si hace un simple insert no veremos mucha diferencia) la performance es mayor que si ejecutamos las sentencias desde la aplicacion directamente, esto tiene una explicacion simple y es que los Stores quedan compilados y el motor de base de datos no debe calcular por cada ejecucion (a menos que se lo indiquemos) que vuelva a calcular los planes, esto hace que el proceso sea mas eficiente, si tenemos 100 usuarios que tienen codigo en su aplicacion y los tiran lo mismo hara 100 veces el mismo calculo el motor, pero si en luagar de tenerlo asi esta en un Store el quedara en cache y ademas compilado haciendo que la performance mejore.

http://msmvps.com/blogs/maxiaccotto/...rocedures.aspx

Etiquetas: consulta_pagina, frente, procedure, store
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:41.