si probe lo siguietne: - quitando el with(rowlock) - estableciendo ALLOW_PAGE_LOCKS=OFF en todos los indices de al tabla tblInteracciones (3 indices) - estableciendo los indices como clustered, ya que antes estaban non-clustered, (compare las estucturas de la DB1 con el resto para actualizar estas diferencias), - hice un rebuild y reorganize de todos los indices de todas las bases implicadas en al app - drop y create de estos indices, - tengo SP2 instalado en el sql server.
no entiendo tu pregunta, aclaro lo sgte: las tres interacciones hacen exactamente lo mismo, se ejcuta el mismo XLANG de Biztalk, en al traza salto el isolation que abre el Biztalk Biztalk: isolationlevel=serializable (4) (quiero evitar por ahora el cambiar algo en el XLANG de Biztalk) Muchas Gracias!! Slds Clarisa El 1 de octubre de 2008 11:48, Jose Mariano Alvarez < [EMAIL PROTECTED]> escribió: > CLarisa: > Probaste quitando el with(rowlock)? > Una de las transacciones es la de biztalk y el componente COM+ y la otra? > > -------------------------------- > Atte. > Ing. Jose Mariano Alvarez > SQL Total Consulting > > > 2008/10/1 Clarisa Savio <[EMAIL PROTECTED]> > >> Hola Mariano, >> Bueno describo un poco mas el problema, >> Tengo una base de datos DB1(SQL 2005) con una tabla tblInteracciones, >> esta tabla tiene una PK_idInteraccion (clustered), >> ademas tengo un servidor Biztalk que abre una transaccion de tipo >> serializable ejecuta un metodo de un componente de Com+ que ejecuta un store >> procedure, este store procedure hace un insert into tblInteracciones >> with(rowlock), >> este esquema viene funcionando desde hace varios años (SQL2000), esta >> replicado en 6 bases de datos, y el tema es que empezaron a saltar deadlocks >> en el insert into, excepto en una base de datos, el profiler indica que el >> deadlock se produce en el pk_idInteracciones, >> Si bien en la documentacion de sql 2005 dice que un isolation level >> serializable "Se colocan bloqueos de intervalo en el intervalo de valores de >> clave que coincidan con las condiciones de búsqueda de cada instrucción >> ejecutada en una transacción. De esta manera, se impide que otras >> transacciones actualicen o inserten filas que satisfagan los requisitos de >> alguna de las instrucciones ejecutadas por la transacción actual" ademas: >> Otras transacciones no pueden insertar filas nuevas con valores de clave que >> pudieran estar incluidos en el intervalo de claves leído por las >> instrucciones de la transacción actual hasta que ésta finalice. >> *El tema es que esto funciona en una DB y en las demas se producen >> deadlocks*, >> aclaracion: las bases de datos se migraron a sql 2005 hace unos meses >> atras (compatibilidad 80)sin presentar estos problemas por deadlocks, ademas >> los cambios realizados hasta hoy no estan directamente relacionados con la >> funcionalidad que describo. >> >> >> Muchas Gracias!! >> Slds >> Clarisa >> >> >> 2008/9/23 Jose Mariano Alvarez <[EMAIL PROTECTED]>: >> > El insert into por si solo no va a producir eso. >> > >> > Si estas en 2005 podrias probar snapshot isolation para la query previo >> a >> > que habilites ALLOW_SNAPSHOT_ISOLATION. >> > >> > ALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ON; >> > >> > Luego en la conecxion usar esto al comienzo >> > >> > SET TRANSACTION ISOLATION LEVEL SNAPSHOT; >> > >> > >> > >> > >> > -------------------------------- >> > Atte. >> > Ing. Jose Mariano Alvarez >> > SQL Total Consulting >> > >> > >> > On Tue, Sep 23, 2008 at 17:43, Clarisa Savio <[EMAIL PROTECTED]> >> wrote: >> >> >> >> Hola Mariano, >> >> >> >> Antes de pasarte info, simplifico un poco, tengo una DB con la misma >> >> tabla, misma estructura, pero en esa DB no se propduce el error, no >> >> encuentro la diferencia con la otra DB, donde si se producen los >> >> deadlocks, >> >> >> >> adelanto: el problema se da en un insert into y se usa un RowLock, en >> >> ambas bases se refleja la misma estructura de tabla indices y Sps, es >> >> como una replicacion de la funcionalidad. >> >> >> >> muchas gracias!! >> >> Slds >> >> Clarisa >> >> >> >> 2008/9/23 Jose Mariano Alvarez <[EMAIL PROTECTED]>: >> >> > Clarisa, podrias pasar el diseño de la tabla, los indices y las dos >> >> > sentencias que estan dando ese error. >> >> > Es muy probable que haya involucrado un table scan. >> >> > Podrías indicar ademas el plan de la sentencia involucrada a ver si >> >> > tiene >> >> > paralelismo. >> >> > Entre las alternativas posibles están por ejemplo usar el hint >> ROWLOCK >> >> > pero >> >> > antes me gustaría conocer algo mas de info. >> >> > >> >> > >> >> > -------------------------------- >> >> > Atte. >> >> > Ing. Jose Mariano Alvarez >> >> > SQL Total Consulting >> >> > >> >> > >> >> > 2008/9/23 Clarisa Savio <[EMAIL PROTECTED]> >> >> >> >> >> >> Buenas! >> >> >> >> >> >> Estoy teniendo problemas con un deadlock, >> >> >> con la info que tengo lo unico que se es que esta pasando en un >> indice, >> >> >> el type es 7=Key >> >> >> mode 15 = RangeI_N (Insert Key-Range and Null Resource lock). Used >> to >> >> >> test ranges before inserting a new key into an index. >> >> >> el tema es que ya hice un drefrag de los indices de la tabla en >> >> >> cuestion, (todos no solo el que indice el deadlock) >> >> >> y se soluciono por un momento luego volvio a suceder el deadlock, >> >> >> alguien podria recomendarme que accion tomar por favor? >> >> >> >> >> >> Muchas Gracias!! >> >> >> >> >> >> Saludos >> >> >> Clarisa >> >> >> >> >> > >> >> > >> >> >> > >> > >> > >
