Ver Mensaje Individual
  #1  
Antiguo 20-01-2004
enlavin enlavin is offline
Registrado
 
Registrado: ene 2004
Posts: 8
Reputación: 0
enlavin Va por buen camino
Cita:
Empezado por kinobi
Hola y bienvenido,
Gracias

Cita:
Empezado por kinobi
Si te refieres a si ese espacio es devuelto al sistema de archivos estás en lo cierto, no es devuelto. Si por el contrario te refieres a si ese espacio puede ser aprovechado para almacenar información nueva en la base de datos, el propio servidor lo "reclamará" según lo vaya necesitando.
Efectivamente. No me supone un problema el que el .GDB crezca lo suficiente como para tener un rendimiento óptimo (no tener que volver a pedir páginas al S.O. reutilizando el espacio previamente reservado). El problema viene del crecimiento progresivo (monotono creciente? ) que obliga cada cierto tiempo a detener el sistema para hacer un backup/restore. Ya comenté que eso no me conviene dado que van a ser sistemas autónomos sin operador y sin ninguna conectividad. Aunque siempre se puede hacer el backup programáticamente prefiero una solución más simple.


Cita:
Empezado por kinobi
Algo habitual en bases de datos InterBase con mucha actividad (altas y actualizaciones).
Sip, eso he leido ya en varios sitios.


Cita:
Empezado por kinobi
Eso depende de los componentes de acceso que estés utilizando (y de cómo estén configurados). En general, abren transacciones implícitas (si tú no las abres explícitamente) y las cierran con una desconexión (controlada) de la base de datos o un cierre (controlado) de Dataset... Otro asunto es cómo las cierran: algunos (por defecto) llevan a cabo un rollback otros un commit.

De todas formas, este asunto es tema a discutir en el foro: "Conexión con bases de datos"; allí se tratan los asuntos referentes a los componentes de acceso (incluidos los propios de InterBase).
Es lo que imaginaba. Cojo la (in)directa y a partir de ahora haré las preguntas en su sitio

Cita:
Empezado por kinobi
Sí, si el servidor no hace el commit y la transacción involucra a varias bases de datos. Las transacciones en estado limbo están asociadas a transacciones que operan contra dos o más bases de datos y no hayan superado la segunda fase de un commit en dos fases.
Eso también lo he observado, sobre todo porque por un error de programación no terminábamos una transacción.

Cita:
Empezado por kinobi
Y lo hace, todo depende del valor fijado para el intervalo de sweeping. Por defecto se fija a una diferencia de 20,001 unidades entre el identificador de la OIT (Oldest Interesting Transaction) y el identificador que se asignará a la próxima transacción. Puedes bajarlo y hacer que el sweeping se lance automáticamente con más frecuencia, pero con el riesgo de repercutir en la respuesta del servidor a los clientes si la diferencia se alcanza en un momento de actividad en el sistema (por ejemplo durante el horario laboral).
La puñeta del "sweep interval" es que no es predecible.

Las conclusiones que hemos sacado de esto en el trabajo es que en nuestro caso es preferible dejar el "sweep interval" a 0 y ejecutar "gfix -online -sweep" todos los días en horas de baja carga (madrugada normalmente). De esta forma el sweep reduce en mucho el rendimiento de la BD, pero sigue online y sabemos a qué hora va a pasar.

Llevo experimentando con una instalación desde hace 1 semana y los .GDB no han aumentado de tamaño

Cita:
Empezado por kinobi
Yo me he ganado la bendición
Ya te digo !

Seguiré visitando estos foros (que no conocía) porque hay mucha y buena información. Muchas gracias por la respuesta.

Nos vemos!

Cita:
Empezado por kinobi
Juan J. Rodríguez (127.0.0.1, sweet 127.0.0.1)
PD: jeje, graciosa la firma.
Responder Con Cita