| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Jue 02 Jul, 2009 12:01 pm Asunto: Excesivo tamaño de las tablas |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 03 Jul, 2009 7:33 am Asunto: |
|
|
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 |
|
 |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Jue 09 Jul, 2009 7:59 pm Asunto: |
|
|
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 |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Jue 09 Jul, 2009 9:50 pm Asunto: |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 10 Jul, 2009 7:21 am Asunto: |
|
|
| 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 |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Vie 10 Jul, 2009 12:41 pm Asunto: |
|
|
Si, estoy dándole vueltas al tema,
Ya os contare a ver que se me ocurre.
Un abrazo
Carlos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Vie 10 Jul, 2009 1:09 pm Asunto: |
|
|
Vale,
Pues hablamos de ello si quieres la semana que viene,
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
|