FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Usted que haría si.... :
Hola foristas.
Hace tiempo que no molestaba por aca... Un cliente me pide una aplicación para una comercializadora de café. La cosa es para la parte contable. Los puntos críticos a la hora de decidir cual motos de DB usar son:
bueno, aunque el punto 4 ya lo solucioné, los tres primeros me tienen en vilo. 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, 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) 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. 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, pues los datos de la comercializadora de café son realmente grandes. Solo la transaccion de compras a campesinos puede generar 7 y medio millones de entradas en un año Bueno, pues el hilo queda con varias incognitas: ¿Debo usar FireBird? Si la primera respuesta es NO: ¿Que debo usar? ¿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? ¿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? ¿Es mejor dejar reposar el cafe durante 15 minutos y rocialo con agua fria antes de servirlo? ¿Mi mamá me mima? Gracias por sus respuestas... Sergio
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar... |
#2
|
||||||||||
|
||||||||||
Cita:
Cita:
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:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Hola foro,
Cita:
La unica limitación sobre el manejo en un unico archivo (que es la forma original que trabajan Firebird e Interbase) esta dada no por el motor, sino por el sistema operativo, por ejemplo, Windows limita sus archivos a 2Gigabytes. Casualmente en estos dias a un cliente cuya BD tiene cuatro años de trabajo (es para una empresa de salud) empezo como a ponerse lento el sistema y a detenerse. Resulta que la BD ya estaba al limite de esos 2 Gigas, entonces se hizo un backup y el restore se lanzo a dos archivos, uno de 2 gigas y el otro para que la base de datos siga metiendo paginas de informacion alli. Consulta la documentacion para hacer el restore de esa manera. Te recomendaria Firebird, pero para volumnes de datos grandes utiliza un servidor basado en Linux (es mucho mas rapido). Oiga chino yo soy incha de Nacional, cambiate el dibujito (es broma, America es un gran equipo) Luis F. Buelvas T.
__________________
Luis Fernando Buelvas T. |
#4
|
||||
|
||||
Antes de nada te recomiendo éste hilo:
http://www.clubdelphi.com/foros/showthread.php?t=22211 Es una comparativa de varios SGBD's Open Source; Tal vez eso resuelva algunas de tus dudas... En cuanto a los demás... Hola foristas. ==> Hola. ...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) ==> Eso es mucho tiempo; Revisa el Tema de Abrir Bases de datos de FB, porque me suena que hay solución para eso. Además si cargas tablas, no las cargues todas en memoria, utiliza cursores de tipo Servidor (cargan registros a medida que los van necesitando -si quieres más info sobre ésto hablamos en otro mail...-) ...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. ==> Cualquier Base de Datos un poco seria tiene eso y más... que no te preocupe. Otro tema es cómo estás guardando las fotos; Tal vez habría que guardarlas en formato compromido o incluso estudiar el guardarlas fuera dela Base de Datos (no soy partidario de ésta segunda opción), pero se puede estudiar... ...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, pues los datos de la comercializadora de café son realmente grandes. Solo la transaccion de compras a campesinos puede generar 7 y medio millones de entradas en un año ==> Con más razón para usar una Base de Datos "como esta" (me refiero a un SGBD); Si estás pensando en Bases de Datos con tablas por separado tipo Paradox, DBase y demás olvídalo. ¿Debo usar FireBird? ==> No creo que sea un mala opción (revisa el LINK del principio) Si la primera respuesta es NO: ¿Que debo usar? ==> Creo que una alternativa puede ser SQLServer; Nosotros la utilizamos con mucho más volumen que el que comentas y va bien; Pero eso depende mucho también de las infraestruras que respaldan (Servidores, Redes, comunicaciones,...) De todas formas ya sabemos el inconveniente/desventaja más grande de SQLSever: $$$$$$$$$$$$$ ¿Porque el archivo de Firebird es de 550 MB con 60.000 fotos adentro? ==> Buena pregunta. Puedes hacer la prueba; Duplica la Base de Datos, elimina las fotos (DELETE o UPDATE), haz un Backup/Restore y a ver qué tamaño queda... ¿Es eso normal o es así de grande por las fotos? ==> Depende de cómo las guardes. ¿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? ==> Se podría, pero no lo tendrá que hacer FB, lo tendrás que hacer tú. Se puede utilizar un UNION, pero habría que ver qué tipo de consultas necesitas.... ¿Es mejor dejar reposar el cafe durante 15 minutos y rocialo con agua fria antes de servirlo? ==> Me gusta Caliente, muy, muy caliente... ¿Mi mamá me mima? ==> Claro, como debe ser.... La mama siempre será la mamá...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Bueno...
Gracias a todos.
Pues lo de la manera de cargar la base de datos, no se, simplemente la coloco en el directorio de datos y en delphi la abro mediante: Código:
procedure TdmPpal1.DataModuleCreate(Sender: TObject); var registro:TIniFile; conexionL,conexionR:widestring; begin registro:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'IDCFac.reg'); red:=StrToInt(registro.ReadString('RED','EstaEnRed','')); conexionL:=registro.ReadString('BASEDATOS','local',''); ruta:=registro.ReadString('DDIRBASE','dirbaseLocal',''); conexionR:=registro.ReadString('BASEDATOS','red',''); rutared:=registro.ReadString('DDIRBASE','dirbaseRed',''); rutadatos:=ruta+registro.ReadString('DDATOS','datos',''); rutadatosred:=rutared+registro.ReadString('DDATOS','datos',''); rutareportes:=ruta+registro.ReadString('DREPORTES','reportes',''); rutareportesred:=rutared+registro.ReadString('DREPORTES','reportes',''); case red of 0: fbFac.databasename:=conexionL; 1: fbFac.databasename:=conexionR; end; try fbFac.Connected:=true; except showmessage('No se puede conectar a la Base de Datos. Contacte al proveedor: 310-6976764'); application.Terminate; end; fbtra.Active:=true; fbtblCliente.Active:=true; fbtblFactura.Active:=true; fbtblUsuario.Active:=true; fbtblDetFac.Active:=true; fbtblInsumo.Active:=true; fbtblNumFac.Active:=true; end; Lo de la paginación grande, pues lo voy a probar (Ha de funcionar) Por lo demas, entendido, anotado y en via de uso Gracias P.D. para jachguate No es con animo de controversia, pero el mundo ama el café excelso colombiano...
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar... |
#6
|
||||
|
||||
Que tal.
Pues lo que corresponde es, con cronómetro en mano, seguir paso a paso la ejecución de este método, a partir de la línea:
Luego, volvé aqui con una estadística, digamos el promedio de ejecución de cada línea después de unas 5-10 corridas y vamos viendo de que puede tratarse el asunto. Hasta luego. pd. [quote=sercornejov P.D. para jachguate No es con animo de controversia, pero el mundo ama el café excelso colombiano...[/QUOTE] Te lo dije... no nos vamos a poner de acuerdo en ese punto.. . Solo he de decir que el café de altura de Guatemala es reclamado por muchos..
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
Debrias cambiar de equipo,
__________________
...el saber no es una garantía de libertad; pero la libertad es impensable sin él." Marvin Harris (1999) |
#10
|
|||
|
|||
La lentitud al abrir las tablas puede ser porque los select de las tablas estén trayendo todos los registros. Eso sucede cuando usamos SELECT .... FROM TABLA, y no colocamos los registros que queremos traer con un where.
|
#11
|
||||
|
||||
Hola.
Yo creo que deberias revisar la apertura de las seis tablas despues de abrir la base de datos. Saludos |
#12
|
|||
|
|||
Tu aplicación tarda porque abris las tablas al principio, hace una prueba:
No abras las tablas en el datamodule y pone un boton en algun lugar y abri las tablas en el click del botón vas a ver la diferencia. Yo te recomiendo que no utilizes tablas, y menos aun que la abras al principio de la aplicación, abrilas solo cuando las tengas que usar, y en lugar de tablas utiliza querys o mejor aun los ibdataset.
__________________
Suerte Alejandro |
#13
|
||||
|
||||
Recordar que el hilo es del 21/06/2005 y Migpal sólo ha hecho un comentario jocoso.
Lo siento si han leido todo el hilo... aunque bueno, tampoco está demás Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|