En mi empresa estamos migrando a firebird usando componentes de acceso DbExpress y TClientDataSet y DataSetProvider.
Pero antes de migrar hemos decidido hacer unas pruebas de velocidad para saber el camino que debemos coger para ello se decidio hacer pruebas sobre 3 ficheros
1 de 200.000 registros
1 de 500.000 registros
1 de 1.000.000 registros
para ello las he creado con la misma estructura y las voy rellenando con una rutina como la siguiente
Código:
CDSMenor.Open;
Gauge1.Progress := 0;
Gauge1.MaxValue:= 30000;
For I := 0 to 200000 do begin
inc(J);
if J = 1000 then begin
CDSMenor.ApplyUpdates(-1);
J:=0;
Gauge1.Progress := Gauge1.Progress + 100;
Update;
end;
CDSMenor.Append;
CDSMenor.FieldByName('DEscripcion').AsString := 'Voy Por: ' +
IntToStr(I) + ' ' + DateTimeToStr(now) ;
CDSMenor.Post;
end;
El problemas es que con 170.000 el programa se queda colgado en el post es como si se tuviera que recorer toda la tabla o algu parecido eso nos preocupa ya que tenemos empresas que llenan esa cantidad (200.000) en su historico en un mes quisiera saber si alguno se ha encontrado con un problema semejante o si existe alguna explicacion logica al problema estaria muy agradecido os adjunto la estructura de la tabla a ver si con esta informacion me podeis ayudar.
Me despido agradeciendo toda la ayudade antemano
Gami
Código SQL
[-]
Create Table MachaqueMenor (
Codigo Integer not null,
Descripcion Varchar (100),
Campo1 Varchar(60) default 'Primer Campo',
Campo1_2 Varchar(60) default 'Segundo Campo',
Campo1_3 Varchar(60) default 'Tercer Campo',
Campo1_4 Varchar(60) default 'Cuarto Campo',
Campo1_5 Varchar(60) default 'Quinto Campo',
Campo1_6 Varchar(60) default 'Sexto Campo',
Campo1_7 Varchar(60) default 'Septimo Campo',
Campo1_8 Varchar(60) default 'Octavo Campo',
Campo1_9 Varchar(60) default 'Noveno Campo',
Campo1_10 Varchar(60) default 'Decimo Campo',
Campo2_1 Integer Default 21,
Campo2_2 Integer Default 22,
Campo2_3 Integer Default 23,
Campo2_4 Integer Default 24,
Campo2_5 Integer Default 25,
Campo2_6 Integer Default 26,
Campo2_7 Integer Default 27,
Campo2_8 Integer Default 28,
Campo2_9 Integer Default 29,
Campo2_10 Integer Default 30,
Campo3_1 Float default 3.1,
Campo3_2 Float default 3.2,
Campo3_3 Float default 3.3,
Campo3_4 Float default 3.4,
Campo3_5 Float default 3.5,
Campo3_6 Float default 3.6,
Campo3_7 Float default 3.7,
Campo3_8 Float default 3.8,
Campo3_9 Float default 3.9,
Campo3_10 Float default 3.01,
Campo4 Varchar(60) default 'Primer Campo',
Campo4_2 Varchar(60) default 'Segundo Campo',
Campo4_3 Varchar(60) default 'Tercer Campo',
Campo4_4 Varchar(60) default 'Cuarto Campo',
Campo4_5 Varchar(60) default 'Quinto Campo',
Campo4_6 Varchar(60) default 'Sexto Campo',
Campo4_7 Varchar(60) default 'Septimo Campo',
Campo4_8 Varchar(60) default 'Octavo Campo',
Campo4_9 Varchar(60) default 'Noveno Campo',
Campo4_10 Varchar(60) default 'Decimo Campo',
Campo5_1 Float default 3.1,
Campo5_2 Float default 3.2,
Campo5_3 Float default 3.3,
Campo5_4 Float default 3.4,
Campo5_5 Float default 3.5,
Campo5_6 Float default 3.6,
Campo5_7 Float default 3.7,
Campo5_8 Float default 3.8,
Campo5_9 Float default 3.9,
Campo5_10 Float default 3.01,
Campo6_1 Integer Default 21,
Campo6_2 Integer Default 22,
Campo6_3 Integer Default 23,
Campo6_4 Integer Default 24,
Campo6_5 Integer Default 25,
Campo6_6 Integer Default 26,
Campo6_7 Integer Default 27,
Campo6_8 Integer Default 28,
Campo6_9 Integer Default 29,
Campo6_10 Integer Default 30,
Campo7_1 Blob(400,1),
Campo7_2 Blob(400,1),
Campo7_3 Blob(400,1),
Campo7_4 Blob(400,1),
Campo7_5 Blob(400,1),
Campo7_6 Blob(400,1),
Campo7_7 Blob(400,1),
Campo7_8 Blob(400,1),
Campo7_9 Blob(400,1),
Campo7_10 Blob(400,1),
Campo8_1 Integer Default 21,
Campo8_2 Integer Default 22,
Campo8_3 Integer Default 23,
Campo8_4 Integer Default 24,
Campo8_5 Integer Default 25,
Campo8_6 Integer Default 26,
Campo8_7 Integer Default 27,
Campo8_8 Integer Default 28,
Campo8_9 Integer Default 29,
Campo8_10 Integer Default 30,
Campo9_1 Float default 3.1,
Campo9_2 Float default 3.2,
Campo9_3 Float default 3.3,
Campo9_4 Float default 3.4,
Campo9_5 Float default 3.5,
Campo9_6 Float default 3.6,
Campo9_7 Float default 3.7,
Campo9_8 Float default 3.8,
Campo9_9 Float default 3.9,
Campo9_10 Float default 3.01,
Campo10_1 Varchar(60) default 'Primer Campo',
Campo10_2 Varchar(60) default 'Segundo Campo',
Campo10_3 Varchar(60) default 'Tercer Campo',
Campo10_4 Varchar(60) default 'Cuarto Campo',
Campo10_5 Varchar(60) default 'Quinto Campo',
Campo10_6 Varchar(60) default 'Sexto Campo',
Campo10_7 Varchar(60) default 'Septimo Campo',
Campo10_8 Varchar(60) default 'Octavo Campo',
Campo10_9 Varchar(60) default 'Noveno Campo',
Campo10_10 Varchar(60) default 'Decimo Campo',
Primary Key(Codigo)
);
CREATE GENERATOR GEN_CodigoMenor;
SET TERM !! ;
CREATE TRIGGER SET_IDTrabajo FOR MachaqueMenor
BEFORE INSERT AS
BEGIN
NEW.Codigo = GEN_ID(GEN_CodigoMenor, 1);
END !!
SET TERM ; !!