Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Excesivo tamaño de las tablas

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Excesivo tamaño de las tablas Responder citando

Hola a todos,

Esta cuestión es complicada pero seguro que con la de gente experta que tenemos aquí a alguien se le ocurre algo.

Os cuento, tengo tablas Paradox y un programa que lleva años en el mercado y con muchos clientes, el problema es que la gente que lleva años tiene cientos de miles de registros, en algunos casos algún millón de ellos y el programa se ralentiza de tal manera que cada vez va peor.

El programa tiene muchas pantallas y rehacer todo esto seria una barbaridad, yo he pensado en hacer tablas anuales, por ejemplo que la tabla ventas se convirtiera en ventas2007, ventas2008, ventas2009, etc...

Como podría hacerlo sin tener que rehacer todo el código e ir parte por parte cambiando todo?

Habría alguna forma de partir las tablas sin que el programa se entere o yo que se, alguna manera para solucionar esto?

Gracias a todos.

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

No tiene respuesta fácil el problema que planteas. Además hay que saber si esas tablas anuales las quieres usar en el programa o simplemente quieres conservarlas para hacer consultas puntuales.
Si simplemente quieres hacer una copia de los trozos, yo lo haría así:
    1. Lee la estructura de la tabla que quieres partir y crea una estructuira igual con otro nombre; aprovecha para ello FieldDefs de TDataSet.
    2. Una vez que hayas creado la tabla nueva, haz un INSERT desde la antigua:
    Código:
    INSERT INTO 'Ventas2007.db' SELECT * FROM 'Ventas.db' WHERE EXTRACT(YEAR FROM Fecha) = 2007

    Con esto copiarías en la tabla nueva todos aquellos registros en los que el año del campo fecha sea 2007.
    3. Borra los registros copiados:
    Código:
    DELETE FROM 'Ventas.db' WHERE EXTRACT(YEAR FROM Fecha) = 2007

Esto para sacar los registros, que lo puedes poner en un programa que se ejecute automáticamente al arrancar el PC por ejemplo. Ahora bien, si quieres usar esas tablas en el programa que ya existe... No te queda más remedio que tocar todo el código.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Y por que no pruebas usar FireBird en lugar de paradox ? creo que es muchísimo mas manejable el Firebird en lugar de tablas planas de paradox.
_________________
La caja decía, requiere Win95 o superior así que instalé Linux.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Bueno lo he pensado muchas veces, pro el programa tiene tal tamaño que quizás seria mas fácil empezarlo de cero que migrarlo a Firebird.

Seria muchísimo trabajo.

Un abrazo

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Carlos J. Fernandez escribió:
Bueno lo he pensado muchas veces, pro el programa tiene tal tamaño que quizás seria mas fácil empezarlo de cero que migrarlo a Firebird.

De todas formas, aunque migres a Firebird plantéate desde el principio trocear las tablas.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si, estoy dándole vueltas al tema,

Ya os contare a ver que se me ocurre.

Un abrazo

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si te puedo echar una mano; tengo en danza una aplicación que, entre otras cosas, necesita migrar datos de Paradox a Firebird.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Vale,

Pues hablamos de ello si quieres la semana que viene,

Un abrazo.

Carlos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.