Q&A

  • 진짜 급합니다. 데이타 입력속도 향상에 대해
약 20만건의 레코드를 입력할려구 하는데 1개 레코드를 입력하는데 1초가 걸립니다.

시간당 3600레코드를 입력할 수 있구 36000건에 10시간 20만건이면 약 60시간이 좀 않걸리나요...흑흑..

한 10분지 1정도만 시간을 줄여두 좋으련만..

DB는 unix oracle을 사용하고 있습니다.

sqlnet으로 connect 하구요...

로그파일을 각 레코드 단위로 각레코드를 컬럼별로 쪼개서 DB에 insert 를 하는 겁니다.



좀 가르쳐 주세요...

프로그램을 제가 잘못 만들어서 그러는 건지 DB control이 않좋아서 그러는 건지..

델파이의 성능이 이정도 밖에 않되는 건지 ....

4  COMMENTS
  • Profile
    공성환 2001.03.06 00:13
    오라클의 로더기능을 사용해보시지요...

    그리고 클라이언트에서 작업을 하는것보다는 서버에서 작업하는게 빠릇것 같네요...

    그리고 인덱스가 있다면 삭제한후 작업을 하세요...

    인덱스가 있으면 인덱스까지 만들기 때문에 더느리지요....

    건수에는 장사가 없다는 말이 생각나네요...

    도움이 되실지....

    수고하세요...



    김종건 wrote:

    > 약 20만건의 레코드를 입력할려구 하는데 1개 레코드를 입력하는데 1초가 걸립니다.

    > 시간당 3600레코드를 입력할 수 있구 36000건에 10시간 20만건이면 약 60시간이 좀 않걸리나요...흑흑..

    > 한 10분지 1정도만 시간을 줄여두 좋으련만..

    > DB는 unix oracle을 사용하고 있습니다.

    > sqlnet으로 connect 하구요...

    > 로그파일을 각 레코드 단위로 각레코드를 컬럼별로 쪼개서 DB에 insert 를 하는 겁니다.

    >

    > 좀 가르쳐 주세요...

    > 프로그램을 제가 잘못 만들어서 그러는 건지 DB control이 않좋아서 그러는 건지..

    > 델파이의 성능이 이정도 밖에 않되는 건지 ....

  • Profile
    이진수 2001.03.05 23:26
    음... 제가 알기론 한꺼번에 업데이트 할 수 있는 것이 가능하고

    이것을 가능하게 위해서는 CachedUpdate를 사용하면 되는 것으로 알고 있습니다.



    CachedUpdate를 사용하면

    내부 메모리에 집적 한후 한꺼번에 서버로 날리기때문에 속도로 말하면 10분의 1 단축은 우습죠.



    그럼 자세한건 Help를 참조하세요~





    김종건 wrote:

    > 약 20만건의 레코드를 입력할려구 하는데 1개 레코드를 입력하는데 1초가 걸립니다.

    > 시간당 3600레코드를 입력할 수 있구 36000건에 10시간 20만건이면 약 60시간이 좀 않걸리나요...흑흑..

    > 한 10분지 1정도만 시간을 줄여두 좋으련만..

    > DB는 unix oracle을 사용하고 있습니다.

    > sqlnet으로 connect 하구요...

    > 로그파일을 각 레코드 단위로 각레코드를 컬럼별로 쪼개서 DB에 insert 를 하는 겁니다.

    >

    > 좀 가르쳐 주세요...

    > 프로그램을 제가 잘못 만들어서 그러는 건지 DB control이 않좋아서 그러는 건지..

    > 델파이의 성능이 이정도 밖에 않되는 건지 ....

  • Profile
    김종건 2001.03.06 02:52
    cachedupdate를 사용하는 방법에 대해서 좀 가르쳐 주세요..

    help를 봐두 잘 모르겠어요..

    부탁드립니다.

    이진수 wrote:

    > 음... 제가 알기론 한꺼번에 업데이트 할 수 있는 것이 가능하고

    > 이것을 가능하게 위해서는 CachedUpdate를 사용하면 되는 것으로 알고 있습니다.

    >

    > CachedUpdate를 사용하면

    > 내부 메모리에 집적 한후 한꺼번에 서버로 날리기때문에 속도로 말하면 10분의 1 단축은 우습죠.

    >

    > 그럼 자세한건 Help를 참조하세요~

    >

    >

    > 김종건 wrote:

    > > 약 20만건의 레코드를 입력할려구 하는데 1개 레코드를 입력하는데 1초가 걸립니다.

    > > 시간당 3600레코드를 입력할 수 있구 36000건에 10시간 20만건이면 약 60시간이 좀 않걸리나요...흑흑..

    > > 한 10분지 1정도만 시간을 줄여두 좋으련만..

    > > DB는 unix oracle을 사용하고 있습니다.

    > > sqlnet으로 connect 하구요...

    > > 로그파일을 각 레코드 단위로 각레코드를 컬럼별로 쪼개서 DB에 insert 를 하는 겁니다.

    > >

    > > 좀 가르쳐 주세요...

    > > 프로그램을 제가 잘못 만들어서 그러는 건지 DB control이 않좋아서 그러는 건지..

    > > 델파이의 성능이 이정도 밖에 않되는 건지 ....

  • Profile
    이진수 2001.03.06 06:44
    예제입니다.

    Help에 있는 예제입니다.



    procedure TForm1.ApplyButtonClick(Sender: TObject);



    begin

    with CustomerQuery do

    begin

    Database1.StartTransaction;

    try

    ApplyUpdates; {try to write the updates to the database};

    Database1.Commit; {on success, commit the changes};

    except

    Database1.Rollback; {on failure, undo the changes};

    raise; {raise the exception to prevent a call to CommitUpdates!}

    end;

    CommitUpdates; {on success, clear the cache}

    end;

    end;



    김종건 wrote:

    > cachedupdate를 사용하는 방법에 대해서 좀 가르쳐 주세요..

    > help를 봐두 잘 모르겠어요..

    > 부탁드립니다.

    > 이진수 wrote:

    > > 음... 제가 알기론 한꺼번에 업데이트 할 수 있는 것이 가능하고

    > > 이것을 가능하게 위해서는 CachedUpdate를 사용하면 되는 것으로 알고 있습니다.

    > >

    > > CachedUpdate를 사용하면

    > > 내부 메모리에 집적 한후 한꺼번에 서버로 날리기때문에 속도로 말하면 10분의 1 단축은 우습죠.

    > >

    > > 그럼 자세한건 Help를 참조하세요~

    > >

    > >

    > > 김종건 wrote:

    > > > 약 20만건의 레코드를 입력할려구 하는데 1개 레코드를 입력하는데 1초가 걸립니다.

    > > > 시간당 3600레코드를 입력할 수 있구 36000건에 10시간 20만건이면 약 60시간이 좀 않걸리나요...흑흑..

    > > > 한 10분지 1정도만 시간을 줄여두 좋으련만..

    > > > DB는 unix oracle을 사용하고 있습니다.

    > > > sqlnet으로 connect 하구요...

    > > > 로그파일을 각 레코드 단위로 각레코드를 컬럼별로 쪼개서 DB에 insert 를 하는 겁니다.

    > > >

    > > > 좀 가르쳐 주세요...

    > > > 프로그램을 제가 잘못 만들어서 그러는 건지 DB control이 않좋아서 그러는 건지..

    > > > 델파이의 성능이 이정도 밖에 않되는 건지 ....