FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Saludos.
Soft Commit = CommitRetaining. Realmente sigo sin entender el porque utilizar TpFIBScripter para rellenar y borrar y luego rellenar..... El TpFIBScripter vendría siendo como la opción Script Execute de IbExpert donde pones el Script del tamaño que sea con las sentencias que sean (DML y DDL) y lo ejecutas de un golpe. La misma opción tiene la opción, valga la redundancia, de que pones el COMMIT cada x cantidad de registro. Si pudieras ser más especifico en cuanto a lo que quieres lograr sería un poco más facil para ayudarte. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#2
|
|||
|
|||
Lo que hace el programa es pasar los datos de una base de datos de un servidor a una base de datos firebird en local (desconozco la razón por la cual se decidió hacer esto).
Sincronizo los datos tabla a tabla. Una de las tablas es la que me da estos problemas ya que tiene 150.000 registros, el resto no suele tener más de 2.000. Por cada registro genero una insert que añado en el TpFibScripter. Cuando he generado 10.000 inserts, ejecuto el script (TpFibScripter.ExecuteScript), lo limpio (TpFibScripter.Clear) y continuo generando inserts hasta EOF de la query del servidor. Es la ejecución de esos scripts de 10.000 líneas las que tardan 20 segundos cada una. Espero que con esto, me puedas ayudar. Muchas gracias.
__________________
ash nazg durbatulûk ash nazg gimbatul ash nazg thrakatulûk agh burzum-ishi krimpatul |
#3
|
||||
|
||||
Saludos.
Ya entiendo la idea, lo que estas haciendo es un "replicador" de datos. Se me ocurre dos cosas: 1.- Utilizar los métodos que te había mencionado Batchxxx. 2.- Si es una copia tal cual de como esta la BD del Servidor, entonces sería mejor si haces un Backup de la BD y luego un Restore en la PC local. Otra cosa podría ser que consigas un programa como IBReplicator o similares, que ya están hechos y probados.
__________________
Gracias, Rolphy Reyes |
#4
|
|||
|
|||
El problema es que la base de datos del servidor no es Firebird, es MySQL.
Mi replicador lo que hace es pasar los datos de un lado al otro haciendo insert's. Voy a probar lo de los Batchxxx. Muchas gracias.
__________________
ash nazg durbatulûk ash nazg gimbatul ash nazg thrakatulûk agh burzum-ishi krimpatul |
#5
|
||||
|
||||
Pregunto por curiosidad, ¿De que manera generas las sentencias "inserts" que traes de la base de datos "origen"?, o mejor... ¿Cual es el mecanismo que usas para ello?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#6
|
|||
|
|||
Tengo un xml donde tengo las tablas a sincronizar, los campos de cada tabla, con su nombre en firebird y su nombre en mysql y el tipo de dato (varchar, integer, timestamp).
Recorro mi lista de tablas. Por cada tabla hago una select de los campos que tiene en el xml y genero la insert con los campos que me trae el xml.
__________________
ash nazg durbatulûk ash nazg gimbatul ash nazg thrakatulûk agh burzum-ishi krimpatul |
#7
|
||||
|
||||
Otra solución es que tal vez, te enfoques en optimizar el momento en que creas las sentencias Inserts. Seguramente optimizando la manera como creas estas sentencias (Inserts), podrias mejorar un poco o mucho el tiempo de respuesta total.
Por ejemplo, si haces una especie de concatenación con la función CONCAT de MYSQL para que traiga los Inserts ya "parseados" desde el principio y no tengas que recorrer el XML para generar los Inserts. Tal vez esto te ahorre algo o mucho de tiempo.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#8
|
|||
|
|||
Pues si, la verdad es que tienes razón. Podría quitar algo de tiempo al generar las inserts, pero de todas formas, el cuello de botella lo sigo teniendo al insertar en Firebird.
Lo tendré en cuenta. Muchas gracias.
__________________
ash nazg durbatulûk ash nazg gimbatul ash nazg thrakatulûk agh burzum-ishi krimpatul |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda con inserciones masivas | voldemmor | Conexión con bases de datos | 4 | 13-03-2008 21:23:05 |
Problemas Acelerar PHP | HomeCinema | PHP | 1 | 09-02-2007 11:42:04 |
Acelerar carga de Delphi | mamcx | Noticias | 4 | 13-09-2006 00:51:52 |
Problemas con inserciones masivas | gusanita | Conexión con bases de datos | 2 | 16-12-2005 06:40:37 |
Como acelerar el trabajo DBF | manuelpr | Conexión con bases de datos | 3 | 29-03-2005 19:52:11 |
|