Q&A

  • 테이블 처리속도가 느려요
텍스트 파일을 테이블(DBF, Paradox, RDB...)로 이동하는 프로그램을

만들었는데, 처리속도가 상당히 느립니다.

텍스트 데이터가 약15,000건인데 5,000건 처리하는데 약2시간 정도가

걸리네요... 처리속도를 빠르게 하는 방법을 알려주시면 감사하겠습니다.



또 한가지 질문은 DBF의 N(Numeric) 필드 속성이 정수형이 맞습니까?



참고로 제가 코딩한 내용입니다.

procedure TForm_Conv.SB_ConvClick(Sender: TObject);

var

s : string;

f : textfile;

begin

assignfile(f, OpenDialog1.FileName);

reset(f);



while not seekeof(f) do

begin

readln(f,s);

if ((ord(s[1])=10) and (ord(s[2])=13)) then

begin

T_Dest.Append;

end

else

begin

with T_Dest do

begin

Append; Edit;

Fields[0].AsString := Copy(s, 1, Pos('|', s)-1);

System.Delete(s, 1, Pos('|', s));

Fields[1].AsString := Copy(s, 1, Pos('|', s)-1);

System.Delete(s, 1, Pos('|', s));

:

:

Post;

end;

end;

end;

closefile(f);

end;



2  COMMENTS
  • Profile
    김선일 1999.10.04 07:44
    맹주형 wrote:

    > 텍스트 파일을 테이블(DBF, Paradox, RDB...)로 이동하는 프로그램을

    > 만들었는데, 처리속도가 상당히 느립니다.

    > 텍스트 데이터가 약15,000건인데 5,000건 처리하는데 약2시간 정도가

    > 걸리네요... 처리속도를 빠르게 하는 방법을 알려주시면 감사하겠습니다.

    >

    > 또 한가지 질문은 DBF의 N(Numeric) 필드 속성이 정수형이 맞습니까?

    >

    > 참고로 제가 코딩한 내용입니다.

    > procedure TForm_Conv.SB_ConvClick(Sender: TObject);

    > var

    > s : string;

    > f : textfile;

    > begin

    > assignfile(f, OpenDialog1.FileName);

    > reset(f);

    >

    > while not seekeof(f) do

    > begin

    > readln(f,s);

    > if ((ord(s[1])=10) and (ord(s[2])=13)) then

    > begin

    > T_Dest.Append;

    > end

    > else

    > begin

    > with T_Dest do

    > begin

    > Append; Edit;

    > Fields[0].AsString := Copy(s, 1, Pos('|', s)-1);

    > System.Delete(s, 1, Pos('|', s));

    > Fields[1].AsString := Copy(s, 1, Pos('|', s)-1);

    > System.Delete(s, 1, Pos('|', s));

    > :

    > :

    > Post;

    > end;

    > end;

    > end;

    > closefile(f);

    > end;

    >

  • Profile
    김선일 1999.10.04 07:49
    김선일 wrote:

    제가 아는 방법이 하나 있습니다.

    도움이 될 건지는 모르겠습니다. 하지만 이건 분명합니다.

    우리나라 데이터베이스 프로그래머들은 주로 이메소드를 사용합니다.



    맹주씨가 현재 속도를 상향시키고 싶은 테이블에

    table1.disablecontrols; //테이블과 연결 된 control를 일시 정지를 시키는 것

    처리 할 이벤트들 값을 정의 맹주씨는 15000건 자료들이겠죠



    처리 한 다음에

    table1.enablecontrols; //테이블과 다시 연결



    한번 천천히 시도 해보세요

    안 되시면 연락하세요?



    > 맹주형 wrote:

    > > 텍스트 파일을 테이블(DBF, Paradox, RDB...)로 이동하는 프로그램을

    > > 만들었는데, 처리속도가 상당히 느립니다.

    > > 텍스트 데이터가 약15,000건인데 5,000건 처리하는데 약2시간 정도가

    > > 걸리네요... 처리속도를 빠르게 하는 방법을 알려주시면 감사하겠습니다.

    > >

    > > 또 한가지 질문은 DBF의 N(Numeric) 필드 속성이 정수형이 맞습니까?

    > >

    > > 참고로 제가 코딩한 내용입니다.

    > > procedure TForm_Conv.SB_ConvClick(Sender: TObject);

    > > var

    > > s : string;

    > > f : textfile;

    > > begin

    > > assignfile(f, OpenDialog1.FileName);

    > > reset(f);

    > >

    > > while not seekeof(f) do

    > > begin

    > > readln(f,s);

    > > if ((ord(s[1])=10) and (ord(s[2])=13)) then

    > > begin

    > > T_Dest.Append;

    > > end

    > > else

    > > begin

    > > with T_Dest do

    > > begin

    > > Append; Edit;

    > > Fields[0].AsString := Copy(s, 1, Pos('|', s)-1);

    > > System.Delete(s, 1, Pos('|', s));

    > > Fields[1].AsString := Copy(s, 1, Pos('|', s)-1);

    > > System.Delete(s, 1, Pos('|', s));

    > > :

    > > :

    > > Post;

    > > end;

    > > end;

    > > end;

    > > closefile(f);

    > > end;

    > >