Diego, Te hago un par de preguntas antes.
Realmente necesitas transacciones ? Que volumen de datos estas manejando ? Los datos que traes y los que actualizas ... los podes relacionar alguna columna que sea clave unica, no ? Saludos! -----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Jancic Enviado el: Jueves, 03 de Julio de 2008 02:40 p.m. Para: [EMAIL PROTECTED] Asunto: [dbms] Proceso sin bloqueos Hola, Leonardo: Creo que corte la explicacion por la mitad, lo que quiero hacer es meter todo dentro de una transaccion, y como la transaccion bloquea la tabla que usa mientras esta activa (la transaccion) me va a bloquear a todos los usuarios que quieran usar esta tabla. Hernan: Parece buena idea, a excepcion de performance. Para hacer lo que decis deberia usar un cursor o algo asi y creo que va a ser medio lento... Igual se me ocurre que podria hacer lo mismo que tengo ahora pero usando un TOP n y corriendolo varias veces (es decir, hacerlo en batches mas pequeños) Creo que de esa forma podria "calibrar" el tiempo que se bloquea, para equilibrar velocidad de import versus tiempo de tabla bloqueada. Gracias! Diego 2008/7/3 Hernán Zaldívar <[EMAIL PROTECTED]>: > Siempre que hagas un bulk va a bloquear todo y es por proteccion... si le sacas el bloqueo se pueden producir errores no muy buenos... > > Y si actualizas uno a uno en vez de bulk? Uno a uno va bloqueando de a un registro a la vez y soltandonlo cuando lo termina de usar.. esto es rapido > > -----Mensaje original----- > De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Leonardo Micheloni > Enviado el: Jueves, 03 de Julio de 2008 2:13 p.m. > Para: Hernán Zaldívar > Asunto: [dbms] Proceso sin bloqueos > > Hola Diego, > No entiendo qué querés decir con "bloquear toda la aplicación web" > > On Thu, Jul 3, 2008 at 1:04 PM, Diego Jancic <[EMAIL PROTECTED]> wrote: >> Hola gente!, >> Tengo un problema (posiblemente de diseño), tengo una app web que >> permite importar algunas cosas (usuarios, permisos, etc) desde csv. Ya >> esta funcionando todo en un proceso aparte, lo que se hace es: >> 1 - importar cada linea del csv a una tabla temporal, sin hacer mucho >> procesamiento >> 2 - ejecutar bulk inserts para los nuevos usuarios >> 3 - ejecutar bulk updates para actualizar los usuarios existentes >> 4 - ejecutar bulk inserts para los nuevos permisos >> 5 - ejecutar bulk updates para actualizar los permisos existentes >> 6 - .... >> >> Como puedo hacer para ejecutar los pasos 2, 3, 4, 5, ..., n sin >> bloquear a toda la aplicacion web ? >> Posiblemente tarde poco el import, pero bloquear todo durante algunos >> segundos no es muy bueno que digamos... >> >> Alguna idea? >> >> Gracias, >> Diego >> >> > > > > -- > Leonardo Micheloni. > Ayudando a organizar las primeras jornadas ágiles de Latinoamérica > > http://agiles2008.org/ > > Blog Personal > > http://leomicheloni.blogspot.com/ > > >
