SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: ErWillem en Jueves 6 de Julio de 2006, 23:18
-
Bueno, primero que nada no se si esto sea posible pero necesito optimizar una aplicacion ya que en ocaciones se realizan demasiadas consultas y se pone un pokito pesado el acceso.
Por dar un ejemplo: Para la venta de entradas de un evento X yo hago una primera consulta para conseguir las entradas a vender. Luego de encontrarlas a cada una de las entradas tengo que hacerle una actualizacion en la base de datos, para identificarla como vendida, lo que implica una segunda consulta. Ambas consultas implican una conecion independiente, ya que mientras voy recorriendo los datos de la primera consulta necesito accesar nuevamente a la base de datos.
-
Hola... claro que puedes usar una sola conexión, aunque necesitarás utilizar otro objeto de comando, 2 en total.. pero ambas pueden compartir la conexión, al menos no he tenido ningun problema en ello, también puedes usar las transacciones, sacan harto de apuro cuando son muchas consultas... Quizás te convendría trabajar con dataset para la parte de solo lectura y hacer las actualizaciones en tiempo real... porque a fin de cuentas, lo que necesitas es ir recorriendo y actualizar mientras recorres.. si te preocupas por el uso de recursos simplemente eliminas el dataset al final de realizar la operación.
-
que versión de ASP.NET estas usando, y que versión de SQL?
A que le llamas pesado?, a que se demora en cargar toda la página?, nuevamente entre consulta y consulta?, o es pesado en la transacción?.
Es que aca se pueden dar dos casos:
1. Podrías usar Atlas, o JavaScript, o frames creo que también. para que no tenga que cargar toda la página cada vez que viaja al servidor.
2. Si el problema es la cantidad de consutlas que hay a la bse de datos, ah tendrías que optimizar desde el punto de vista de ADO.NET.
Saludos,
-
Asumo que cada uno de los procesos implica una ida y vuelta al servidor de base de datos.
Lo que podrias hacer es formar la consulta como una solo y mandarla.
Por ejemplo:
"Insert into Tabla1 values (X1,X2,X3) update Tabla1 set X3=X3+1 where X1='Xn'"
cuando lo mandas asi, lo reconoce como si fueran 2 consultas.
Espero que esto solucione problema.