Hacelas sin miedo Cualquier cosa chifla Saludos PabloC
-----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Jancic Enviado el: Jueves, 03 de Julio de 2008 15:37 Para: pablo.canonico Asunto: [dbms] Proceso sin bloqueos Gracias Pablo... suena bien... despues hago un par de pruebas. Saludos a todos! 2008/7/3 PabloC <[EMAIL PROTECTED]>: > Diego, si el capo al que hace referencia Leonardo es Maxi o Mariano, yo use > algo que explicaron y dieron ejemplos en alguna charla y que es exactamente > lo que te comentan, funciona muy bien > > Saludos > PabloC > > -----Mensaje original----- > De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Jancic > Enviado el: Jueves, 03 de Julio de 2008 15:16 > Para: pablo.canonico > Asunto: [dbms] Proceso sin bloqueos > > Wow!... Lindo tip!.. > Vere si es muy complicado de adaptar.. > > Gracias! > > 2008/7/3 Leonardo Micheloni <[EMAIL PROTECTED]>: >> Hay una solución más compleja que me contó un capo ;-) >> >> Subís todo a una tabla temporal (una tabla física pero que no se use) >> con el bulk insert >> >> le ponés un trigger para delete (que se ejecuta antes del delete) >> >> con ese trigger hacés el insert/update/delete con una transacción, si >> algo falla no se hace el delete que disparó el trigger >> >> en algún momento (no sé si tenés la posiblidad de hacer ese proceso tipo > batch) >> >> Te tiras un delete top 1000 (sql 2005 soporta TOP en el delete) por >> ejemplo y se te van pasando y borrando los datos automáticamente. >> >> Seguro que quien me mostró esto te lo puede contar mejor, pero es un gran > truco. >> >> Saludos, >> >> 2008/7/3 Diego Jancic <[EMAIL PROTECTED]>: >>> 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/ >>>> >>>> >>>> >>> >>> >> >> >> >> -- >> Leonardo Micheloni. >> Ayudando a organizar las primeras jornadas ágiles de Latinoamérica >> >> http://agiles2008.org/ >> >> Blog Personal >> >> http://leomicheloni.blogspot.com/ >> >> > > > >
