저장하는데 시간이 꽤 걸립니다. 레코드양은 20건 미만입니다.
트랜잭션 처리를 하느라고 늦는것 같은데...
빨리 저장시키는 방법을 모르겠습니다.
부탁드립니다.
참고로, 인터베이스6이고요. 델6에서 작업합니다.
로컬로하든 리모트로 작업하든 저장속도는 아뭏든 느립니다.
=====================================================================
While not Eof do
begin
if Datamodule1.IBTransaction1.InTransaction then
begin
try
With Datamodule1.IBQuery1 do
begin
close;
Sql.Clear;
SQL.Add('Insert into pangu');
SQL.Add('(cd, PanDate, PanTime)values');
SQL.Add('(:cd, :PanDate,:PanTime)')
ParamByName('cd').AsString := T;
ParamByName('PanDate').AsDate := StrToDate(PanDateVar);
ParamByName('PanTime').AsString := PanTimeVAr;
ExecSql;
Datamodule1.IBTransaction1.Commit;
End;
Except
Datamodule1.IBTransaction1.Rollback;
Application.MessageBox('저장 실패.',
'error',MB_OK);
end;
end;
next;
end;
데, 상황에 따라 다르겠지만, 인덱스가 2개 존재하는 상황에서의 insert가 인덱스가 없는 상황에
서의 insert에 비해 대략 2배 정도 더 소요되었다는 테스트 결과를 본 적이 있습니다.
유사하게 테스트를 해 보실려면, 아래와 같이 해당 인덱스들을 잠시 unusable한 후 종전의 시
간과 비교해 보시면 됩니다..
SQL>alter index XXX인덱스 unusable;
그리고 커밋위치를 한번 바꾸지요...