Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿quien es mas rapido, Ibtable, IBdatset ..etc (https://www.clubdelphi.com/foros/showthread.php?t=75444)

pmtzg 23-08-2011 20:15:14

¿quien es mas rapido, Ibtable, IBdatset ..etc
 
Hola Amigos una pregunta para aquellos que ya tienen mas tiempo
trabajando con componentes para Firebird

por ejemplo, Interbase
quien graba o inserta mas rapido en una base de datos :

Código Delphi [-]
-IBtable
-IBquery
-IBDataset
-IBsql

de estos quien reduce el tiempo

tanto para accesar pero sobre todo repito para grabar mas rapido sobre
una base de datos


Saludos

maeyanes 23-08-2011 20:23:50

Hola...

El TIBSQL sería el más rápido, pero tienes que usar sentencias INSERT o UPDATE directamente.

El TIBTable no se recomienda su uso.


Saludos...

pmtzg 23-08-2011 20:35:34

Ok. mi pregunta esta encaminada porque estoy transfiriendo registros de:


Paradox a Firebird y tengo una tabla que supera el millon de registros
y tarda un buen ejeplo de la instruccion que uso

Código Delphi [-]
IBTable1.Fields[i].value:= Query1.Fields[i].value;


entonces ya me hizo pensar !!!, por el tiempo y sobre todo, tengo un detalle
por que no me aparece la información completa de 1 tabla la que supera el millon de registros


saludos ,, espero que me puedan regalar más comentarios

mightydragonlor 23-08-2011 21:22:05

Complementando la respuesta del compañero maeyanes la mejor manera de hacer los inserts y/o updates es por bloques, por ejemplo, haces un bloque de mil inserts, luego le haces el respectivo commit, con esto el proceso será mas rápido, ya que no se detendrá a confirmar una transacción por cada registro.

pmtzg 24-08-2011 00:33:31

OK...
y de los FibPlus e IBexpress

cual tiene mayor velocidad, ?

he probado Zeos y Mdo
son buenos pero un poco lentos


gracias

ecfisa 24-08-2011 00:43:55

Hola pmtzg.

Revisá este enlace: Tutorial comparativa (IBX + Zeos + Firebird + Velocidad )

Saludos.

Caral 24-08-2011 02:05:26

Hola
Para mi siempre a sido este.
Ahora, puede que IBX sea rapido, pero tanto ????:D:D;)
Saludos

oscarac 24-08-2011 15:31:42

Cita:

Empezado por Caral (Mensaje 409989)
Hola
Para mi siempre a sido este.
Ahora, puede que IBX sea rapido, pero tanto ????:D:D;)
Saludos


siento discrepar contigo, mi estimado caral... pero para mi el más rápido sigue siendo este

Casimiro Notevi 24-08-2011 16:57:27

Cita:

Empezado por oscarac (Mensaje 410027)
siento discrepar contigo, mi estimado caral... pero para mi el más rápido sigue siendo este

No, no... este otro:


Crandel 25-08-2011 06:01:58

Cita:

Empezado por pmtzg (Mensaje 409976)
Ok. mi pregunta esta encaminada porque estoy transfiriendo registros de:


Paradox a Firebird y tengo una tabla que supera el millon de registros
y tarda un buen ejeplo de la instruccion que uso

Código Delphi [-]
IBTable1.Fields[i].value:= Query1.Fields[i].value;

Como dice Caral, hay componentes mas rápido que otros, pero la diferencia tampoco es tanta, todos son buenos.

El problema no son los componentes, sino como los usas. Ya te aclaro maeyanes y mightydragonlor, NO USES IBTABLE !!!!

Es impensable que tengas cargado en memoria el millón de registros. El ibTable esta diseñado únicamente para tablas chicas.

En resumen, haz la transferenicia mediante INSERT

Chris 26-08-2011 07:04:14

Para inserciones masivas no importa tanto el componente a utilizar, sino la forma en que lo hagas. Ya que el compañero mightydragonlor te ha mencionado las transacciones, empezaré por allí. Sigue el consejo dado por mightydragonlor, llama a commit por lo menos cada mil registros insertados. La segunda parte y más importante de tú código es que lo hagas por medio de parámetros, utilizando consultas preparadas. El mayor tiempo que se toma la DB es en interpretar y preparar una consulta. Los compañero pueden proporcionarte mucho código de cómo utilizar este tipo de consultas. Sino, busca en los foros que hay muchos ejemplos.

Otra cosa a tener en cuenta es no utilizar TIBTable, ni nada que lleve "Table". Estos componentes utilizan más lógica y código no necesario para tu caso. Lo más rápido que puedes utilizar es TIBSql. Sin embargo, si hablamos de velocidad de componentes, los FIBPlus son de los más rápidos que puedes encontrar. O para tu tarea te saldrían perfectos los componentes Unified Interbase. Son muy rápidos para estas tareas, te lo digo por experiencia propia. De hecho, estos componentes, en su ayuda, incluyen un ejemplo que te puede servir muchísimo. Es sobre inserción masiva utilizando consultas preparadas con parámetros.

Saludos,
Chris

pmtzg 27-08-2011 20:21:46

Cita:

Empezado por
Otra cosa a tener en cuenta es no utilizar TIBTable, ni nada que lleve "[B
Table[/b]". Estos componentes utilizan más lógica y código no necesario para tu caso. Lo más rápido que puedes utilizar es TIBSql. Sin embargo, si hablamos de velocidad de componentes, los FIBPlus son de los más rápidos que puedes encontrar. O para tu tarea te saldrían perfectos los componentes Unified Interbase. Son muy rápidos para estas tareas, te lo digo por experiencia propia. De hecho, estos componentes, en su ayuda, incluyen un ejemplo que te puede servir muchísimo. Es sobre inserción masiva utilizando consultas preparadas con parámetros.

Saludos,
Chris

Los Componentes Unified Interbase ,, son de paga ??' o son libres
se pueden instalar en Delphi 2007 y superior ??


gracias a todos por sus comentarios , y por el correcaminos jejejejeje !!!

maeyanes 27-08-2011 20:29:49

Hola...

¿pmtzg, checaste la URL que te puso Chris? Por que ahí te hubieses dado cuenta que estos componentes son Libres y Open Source. ;)


Saludos...

RONPABLO 28-08-2011 05:43:10

Una pregunta... lo que quiere hace es una aplicación para migrar sus diversos clientes que estaban en paradox a una nueva versión de firebird? de ser esto te recomiendo usar mejor el IBPump es muy. Yo siempre lo uso para pasar desde cualquier base de datos que tenga driver ODBC a firebird y los resultados en velocidad son mu buenos


La franja horaria es GMT +2. Ahora son las 21:20:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi