RE: Secuencias Hibernate

From: Mximo Eduardo Mndez <mmendez(at)ceride(dot)gov(dot)ar>
To: "Lic(dot) Justo Mancuello" <jmancuello(at)hacienda(dot)gov(dot)py>
Cc: cristianrosselm(at)vtr(dot)net, alvherre(at)alvh(dot)no-ip(dot)org, pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Secuencias Hibernate
Date: 2005-10-07 08:35:22
Message-ID: BasiliX-1.1.1_fix2-112868492243465d7a2e334@wwwmail.ceride.gov.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Justo. Tal vez yo me haya expresado mal, porque no me refiero a los oids de los objetos de la base, sino a la llave primaria de cada tabla porque es esta la que se obtiene a partir de una nica secuencia (sequencia_hibernate), o sea que Hibernate cuando tiene que persistir una fila en una tabla, primero acude a la secuencia, obtiene el nuevo valor y consecuentemente hace un insert utilizando este nmero como primary key en la fila a insertar (no existiendo una dependencia real entre la secuencia y la columna de primary key). Al trabajar de esta manera, me cuestiono si en un ambiente de mucha concurrencia de usuarios, habra contencin sobre esa secuencia al tener que pasar por ah TODAS las operaciones de insert (para obtener el nmero que necesitan asignar a la primary key de la tabla). Otros compaeros me han respondido y por ejemplo lvaro me dice que no cree que haya problemas salvo que la secuencia se agote (record que esa secuencia sirve para todas las tablas)
y me recomienda usar un int8 (que es la que uso). Cristian me recomienda que por la manera en que trabaja Hibenate, conviene tener una secuencia por tabla. Ahora estoy en un ambiente de desarrollo, as que todo se comporta de maravillas, pero no s si esta manera de trabajo me traera problemas ms adelante. Si has trabajado con Hibernate y has tenido alguna experiencia, bienvenida sea la sugerencia.

Muchas gracias.

Mximo E. Mndez
CERIDE

06 Oct 2005 15:28 ART usted escribio:

> Cuando tu creas una tabla en postgres, por defecto te asigna un oid que es
> el identificador del objeto dentro de la base de datos. Esto tu puedes
> obviar agregando la orden WITHOUT OIDS
> Proba y ve como queda editando los datos de la tabla creada con este
> agregado.
>
> Suerte!!
>
> -----Mensaje original-----
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org
> [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Mximo Eduardo
> Mndez
> Enviado el: Jueves, 06 de Octubre de 2005 10:39 a.m.
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: [pgsql-es-ayuda] Secuencias Hibernate
>
> Buenas tardes. Estoy trabajando con postgres pero a travs de hibernate y
> las tablas que se generan tienen un identificativo tomado de una secuencia.
> Mi duda es la siguiente. Esa secuencia es NICA y es compartida por todas
> las tablas, o sea que al momento de hacer una insercin, siempre de ah se
> obtiene el siguiente nmero... yo me pregunto entonces si esto no me traer
> problemas de contencin (tipo cuello de botella) al tener muchos usuarios
> concurrentes queriendo hacer inserciones en cualquier tabla ya que todos
> accediendo a la misma secuencia. Si esto ocurre, tal vez sera mejor
> trabajar con una secuencia por tabla y listo. Espero vuestras opiniones al
> respecto. Muchas gracias.
>
> Mximo E. Mndez
> CERIDE
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martín Marqués 2005-10-07 10:51:17 Re: Verificacion de procedimientos almacenados
Previous Message Hilario Machuca 2005-10-07 02:05:11 Re: Manejo de fechas