PDA

Ver la Versión Completa : Que metodo eficiente es para insertar regs concurrentes en Fib


alexander66
17-07-2007, 21:59:46
buenas tardes, estoy desarrollando una aplicacion con d7 y firebird 1.5.3 y los componentes DBX y veo que tiene una velocidad rapida, mi pregunta es: la base de datos firebird tiene los generadores para los autoincrementos, esta utilidad se puede emplear para ingresar registros concurrentes lo q- pasa es que tengo varias tablas que se utilizaran en este modo, me preocupa una de ellas que se llama la tabla bitacora y van haber varias personas ingresando registros, he definido un campo primario pk como clave y un generador pero antes de aprobarlo quiero consultarlo con ustedes, si es buena opcion para estos casos los generadores aparte de tener el componete TsqlCOnecction con el modo de bloqueo Wait. esa es mi pregunta, o bien conocen algun modo efectivo para las inserciones concurrentes con numeros incrementados para la llave primaria.

He visto que Mysql tiene un campo auto_incremento pero se define a nivel columna no se que tan efectivo pueda ser para las inserciones concurrentes

gracias.

iuqrul
17-07-2007, 23:12:37
Cualquier base de datos tipo servidor sql está preparada para manejar inserciones concurrentes, el tema está en el tipo de transacción.

Yo no he usado dbExpress (supongo que es lo que usas), pero sí IBX, además el tema de transacciones depende del servidor, no de los componentes, pero te recomendaría el uso de una transacción del tipo nowait, la carga del servidor será algo mayor, pero impedirá que un usuario se 'duerma' o 'vaya a por un café', dejando bloqueados a los demás.

La transacción nowait, y los dead-locks son una forma más ágil, si el servidor va a tener un nivel de conexiones altos (más de 50 conexiones simultáneas), no sería lo más indicado, sería mejor una wait, con el consiguiente problema de bloqueo, por lo que la programación debería orientarse a que un alta o modificación se hiciera en caché, y se ejecutara de golpe, para no dejar bloqueado el registro

maeyanes
18-07-2007, 15:58:01
Los generadores de Interbase/FireBird son independientes de las transacciones, así que por ese aspecto no creo que debas preocuparte.

Saludos...

rastafarey
19-07-2007, 19:14:51
No logro entender cual es el trasfondo de lapregunta.

pero me imagino Que la pregunta es si es si se violara la clave primaria ¿o no? (osea que no se repetira).

Se ser eso ya te respondieron. Ya que lo generaodres no entran dentro del control transacional. Pero eso no te asegura que el valor siempre valla incrementando ya que denepe de comolo llames.

Lo de la integridad de la cleva primaria manejada po run generador. Si solo usas ese gerador para incrementar la clave primaria no te va dar ningun problemas.

Bueno aunque recuerdo que en la verison 1.5 no final uno d elos generadore se me volvio loco(es mas lo comente en este foro). Pero eso debio ser por esa una version alpha. Es mas esa version no era oficial.

Pero es la unica vez que me a passado un inconveneiente con firebird con interbase 6 si tubemas incovenenientes pero despues que salio firebird es el unico problema que me ha dado.