Ver Mensaje Individual
  #2  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por sercornejov
Yo he tranajado con FireBird 1.5, con una base de datos que contiene tres tablas grandes... Bueno, realmente una de ellas contiene 60.000 fotos en formato JPG (los archivos de estas fotos pesan solo 4K por separado) y hasta el momento funciona bien
No conozco tu diseño, pero aún así casi me atrevo a asegurarte que seguirá funcionando igual de bien por mucho, mucho tiempo..

Cita:
Empezado por sercornejov
aunque al iniciarla se demora como 90 segundos para entrar (esto es: cargando y abriendo las tablas que debe usar de manera inmediata a la apertura)
Esto es una barbaridad!! Te recomiendo revisar que información es la que te estas trayendo al cliente... independientemente de la cantidad de datos almacenados en el servidor, el cliente debiera arrancar en un abrir y cerrar de ojos.

Aqui, es importante aclarar que seguramente hay algo de "diseño" que mejorar, pero no es deficiencia de firebird, son las operaciones que vos estas haciendo.

Cita:
Empezado por sercornejov
y ademas el tamaño del archivo ya es de 550 MB, lo cual me parece un poco grande para una base de datos que se debe mover en RED.
Hay algo de confusión aqui. El archivo de la base de datos jamás se moverá completo en la red. Por los pares trenzados (o el ambiente) viajarán únicamente los datos que tu aplicativo mande traer del servidor. Así, podes tener una base de datos de varios gigas, o teras, y traer al cliente solo un puñado de registros sin ningún tipo de inconveniente.

Cita:
Empezado por sercornejov
Con lo anterior, no se si sea bueno manejar una base de datos como esta, que genera un solo archivo y que su tamaño puede ser muy muy grande
Creo que queda aclarado en el punto anterior, ¿no?

Cita:
Empezado por sercornejov
Bueno, pues el hilo queda con varias incognitas:

¿Debo usar FireBird?
Si la primera respuesta es NO: ¿Que debo usar?
Firebird podria funcionar bien en ese entorno. Si el presupuesto lo permite, podrias mirar hacia oracle, que por estos días no está tan caro si es para tan solo 8 usuarios. De entrada yo no recomendaría SQL Server, pero es que nunca lo hago..

Cita:
Empezado por sercornejov
¿Porque el archivo de Firebird es de 550 MB con 60.000 fotos adentro?
¿Es eso normal o es así de grande por las fotos?
Bueno, a mi me parece normal y no creo que debas preocuparte por el tamaño del archivo. Lo importante, en todo caso, es que sea eficiente. Hoy día, los discos son tan baratos, que toda la paranoia pasada por ahorrar espacio es solo una anécdota. Si te interesa comprender, de cualquier forma, porque es mas grande que 60,000 * 4k, te puedo decir de manera rápida varias cosas:
  • La base de datos está organizada en páginas, que son todas de un mismo tamaño. Así, en ocasiones puede haber un desperdicio considerable de espacio debido a que no todo cabe exactamente en una página. Supongamos el caso de una imágen de 4K. Si tenes páginas de 4K, una fotografía deberá dividirse en dos páginas (debido a que cada una ocupa un número fijo de bytes de cabecera). En la primera página, se almacenarán los 128 bytes de cabecera (tamaño supuesto), mas 3960 bytes correspondientes a la fotografía mas 8 bytes con un puntero a la página que contiene el siguiente segmento. En la segunda, entonces, se almacenarán 128 bytes de la cabecera mas 136 bytes restantes de la fotografía. El resto del espacio queda "desperdiciado". Así, el almacenamiento de una sola fotografía puede obligar a ocupar realmente en disco 8K. Si tuvieses páginas de 2Kb. una fotografía de 4 seguramente se almacenaría en 3 segmentos, ocupando 6Kb.
  • Además de las propias fotografías, en la base de datos se almacenan el diccionario de datos, indices y otras estructuras necesarias para la operación de la misma. Todos estos objetos también están sujetos al almacenamiento en páginas del que hablé en el punto anterior, originando cierto desperdicio.
  • El tamaño de página es ajustable al momento de crear la base de datos, con lo que podes minimizar el efecto en caso estes ejecutando en medios muy caros (lo que sería realmente extraño)... ahora podes tener 200 Gb. por algo mas de 100 dolares acá en latinoamérica. Eso significa que tu base de datos puede crecer y almacenar unos 22 millones de fotos en gastando solo 100 dolares.
  • Mas importante que cuanto espacio ocupa en disco un solo registro, en este caso es, a mi criterio, cuantas veces tendrá que leerse este disco disco (phisical read) para obtener una fotografía. En este caso yo preferiría mil veces dejar páginas de 8Kb (con un tremendo desperdicio), y traer toda una imagen en un solo acceso a disco, que provocar 5 accesos en páginas de 1Kb. con tal de ahorrar espacio, debido a que a diferencia del espacio, el tiempo, mi querido amigo, el tiempo es oro!!. Si un acceso a disco tardara 60 milisegundos, entonces el diseño de página mas grande nos devuelve un registro en ese tiempo, mientras que un diseño de página de 1Kb. podria tardar hasta 300!!, provocando un espantoso cuello de botella que relentizaría la aplicación completa (5 veces mas lenta la gran mayoría de las veces, en este hipotético caso).

Cita:
Empezado por sercornejov
¿Se puede en Firebird manajar daca año en archivos separados, pero que a la hora de consultar se pueda hacer en todo los años disponibles?
Esto es una idea concebida en tiempos de los sistemas de escritorio. Con una base de datos relacional bien diseñada, no creo que sea necesario. Cuando mucho, separar la información internamente en diferentes tablas. Si te decantaras por Oracle, podes tener todo en una sola tabla con diferentes particiones (por año, por ejemplo).
Cita:
Empezado por sercornejov
¿Es mejor dejar reposar el cafe durante 15 minutos y rocialo con agua fria antes de servirlo?
Se que en esto no nos vamos a poner de acuerdo, pero me parece que es mejor el café de Guatemala..
Cita:
Empezado por sercornejov
¿Mi mamá me mima?
Seguramente...

Cita:
Empezado por sercornejov
Gracias por sus respuestas...
Por nada.... se aceptan pagos en sacos de café (aunque sea Colombiano.. )

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita