Q&A

  • Insert시 속도저하문제..
Insert시 속도 문제를 해결할 수가 없어서 또 이렇게 게시판에 올리게 되었습니다.

Query.Cachedupdate := true;

Query.Object := UpdateSQL;



을 사용해서 만들었는데...

첨에는 엄청 빠르게 진행하다가 한 2000 레코드정도 넘어가면 속도가 떨어지기 시작해

서 한 4~5000 레코드정도 입력하면 그냥 Query 컴포넌트만 사용하는 정도의 수준으로

떨어집니다.

어떻게 해야되는지...

한번에 10만 에서 20만 정도는 입력해야되는데 2000정도에서 속도가 떨어지면

정말 큰일입니다.

왜 그러는지. ???

어떻게 해결 방법이 없나요..

급해서 그러는데 좀 가르쳐주세요...

진짜루 산넘어 산이라는 말이 실감나는군요...

...

3  COMMENTS
  • Profile
    까마귀 2001.03.10 02:11
    김종건 wrote:

    > Insert시 속도 문제를 해결할 수가 없어서 또 이렇게 게시판에 올리게 되었습니다.

    > Query.Cachedupdate := true;

    > Query.Object := UpdateSQL;

    >

    > 을 사용해서 만들었는데...

    > 첨에는 엄청 빠르게 진행하다가 한 2000 레코드정도 넘어가면 속도가 떨어지기 시작해

    > 서 한 4~5000 레코드정도 입력하면 그냥 Query 컴포넌트만 사용하는 정도의 수준으로

    > 떨어집니다.

    > 어떻게 해야되는지...

    > 한번에 10만 에서 20만 정도는 입력해야되는데 2000정도에서 속도가 떨어지면

    > 정말 큰일입니다.

    > 왜 그러는지. ???

    > 어떻게 해결 방법이 없나요..

    > 급해서 그러는데 좀 가르쳐주세요...

    > 진짜루 산넘어 산이라는 말이 실감나는군요...

    > ...



    안녕하세요. 까마귀입니다.



    입력 환경이 어떻게 되는지요?

    한번에 입력하는게 10만에서 20만이라면.. 직접 입력하는것 같지는 않고..

    아무튼 입력환경을 자세히 설명해주시는게 고수분들이 답을 하기가 좀 쉬울것 같군요.



    예를 들자면 DBGrid에서 직접 손으로 입력을 하고 나중에 ApplyUpdate를 한다든가..

    뭐 이건 아닌것 같지만.. 10~20만건이니..







    위대한 단군혼이 살아있는 나라.... 대한민국.

  • Profile
    한용석 2001.03.10 02:23
    까마귀 wrote:

    > 김종건 wrote:

    > > Insert시 속도 문제를 해결할 수가 없어서 또 이렇게 게시판에 올리게 되었습니다.

    > > Query.Cachedupdate := true;

    > > Query.Object := UpdateSQL;

    > >

    > > 을 사용해서 만들었는데...

    > > 첨에는 엄청 빠르게 진행하다가 한 2000 레코드정도 넘어가면 속도가 떨어지기 시작해

    > > 서 한 4~5000 레코드정도 입력하면 그냥 Query 컴포넌트만 사용하는 정도의 수준으로

    > > 떨어집니다.

    > > 어떻게 해야되는지...

    > > 한번에 10만 에서 20만 정도는 입력해야되는데 2000정도에서 속도가 떨어지면

    > > 정말 큰일입니다.

    > > 왜 그러는지. ???

    > > 어떻게 해결 방법이 없나요..

    > > 급해서 그러는데 좀 가르쳐주세요...

    > > 진짜루 산넘어 산이라는 말이 실감나는군요...

    > > ...

    >

    > 안녕하세요. 까마귀입니다.

    >

    > 입력 환경이 어떻게 되는지요?

    > 한번에 입력하는게 10만에서 20만이라면.. 직접 입력하는것 같지는 않고..

    > 아무튼 입력환경을 자세히 설명해주시는게 고수분들이 답을 하기가 좀 쉬울것 같군요.

    >

    > 예를 들자면 DBGrid에서 직접 손으로 입력을 하고 나중에 ApplyUpdate를 한다든가..

    > 뭐 이건 아닌것 같지만.. 10~20만건이니..

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국.



    네...

    그럴꺼에여... UpdateSQL을쓰고 Post할때마다 Apply.. Commit을 시킨다면..

    그테이블의 전체적인 list를 보면서 필드를 하나,하나씩내용을 입력하는작업이라

    면 그럴수도 있겠지만... 무척이나 느려지져...거기에다가 베치작업을하면...



    한레코드씩 입력하는 작업이라면 상관없지만여... 위의 내용처럼...Query.Post

    작업을하고 나중에 Commit시키는 작업을 하시던지...(조금은 빨라(?)질껄여..)



    확실한작업은 일련의 베치작업을 직접 UPdate ... Set문을 날려주는겁니다...

    그리고나서 close,open을 해주면 많이 빨라졌을것입니다...

    물론 first... Eof까지 돌리는 작업이라면 Query를 DisableControls를 시켜줘야하겠죠



    ..

    만일.. 어떤 특정조건이 성립되는 작업이라면 Update Set 에 Where절로 처리하십시요..



    그것이 더더욱 빨라질것입니다....

  • Profile
    김종건 2001.03.10 02:27
    한용석 wrote:

    > 까마귀 wrote:

    > > 김종건 wrote:

    > > > Insert시 속도 문제를 해결할 수가 없어서 또 이렇게 게시판에 올리게 되었습니다.

    > > > Query.Cachedupdate := true;

    > > > Query.Object := UpdateSQL;

    > > >

    > > > 을 사용해서 만들었는데...

    > > > 첨에는 엄청 빠르게 진행하다가 한 2000 레코드정도 넘어가면 속도가 떨어지기 시작해

    > > > 서 한 4~5000 레코드정도 입력하면 그냥 Query 컴포넌트만 사용하는 정도의 수준으로

    > > > 떨어집니다.

    > > > 어떻게 해야되는지...

    > > > 한번에 10만 에서 20만 정도는 입력해야되는데 2000정도에서 속도가 떨어지면

    > > > 정말 큰일입니다.

    > > > 왜 그러는지. ???

    > > > 어떻게 해결 방법이 없나요..

    > > > 급해서 그러는데 좀 가르쳐주세요...

    > > > 진짜루 산넘어 산이라는 말이 실감나는군요...

    > > > ...

    > >

    > > 안녕하세요. 까마귀입니다.

    > >

    > > 입력 환경이 어떻게 되는지요?

    > > 한번에 입력하는게 10만에서 20만이라면.. 직접 입력하는것 같지는 않고..

    > > 아무튼 입력환경을 자세히 설명해주시는게 고수분들이 답을 하기가 좀 쉬울것 같군요.

    > >

    > > 예를 들자면 DBGrid에서 직접 손으로 입력을 하고 나중에 ApplyUpdate를 한다든가..

    > > 뭐 이건 아닌것 같지만.. 10~20만건이니..

    > >

    > >

    > >

    > > 위대한 단군혼이 살아있는 나라.... 대한민국.

    >

    > 네...

    > 그럴꺼에여... UpdateSQL을쓰고 Post할때마다 Apply.. Commit을 시킨다면..

    > 그테이블의 전체적인 list를 보면서 필드를 하나,하나씩내용을 입력하는작업이라

    > 면 그럴수도 있겠지만... 무척이나 느려지져...거기에다가 베치작업을하면...

    >

    > 한레코드씩 입력하는 작업이라면 상관없지만여... 위의 내용처럼...Query.Post

    > 작업을하고 나중에 Commit시키는 작업을 하시던지...(조금은 빨라(?)질껄여..)

    >

    > 확실한작업은 일련의 베치작업을 직접 UPdate ... Set문을 날려주는겁니다...

    > 그리고나서 close,open을 해주면 많이 빨라졌을것입니다...

    > 물론 first... Eof까지 돌리는 작업이라면 Query를 DisableControls를 시켜줘야하겠죠

    >

    > ..

    > 만일.. 어떤 특정조건이 성립되는 작업이라면 Update Set 에 Where절로 처리하십시요..

    >

    > 그것이 더더욱 빨라질것입니다....





    일단은 감사드립니다...

    해결이 되서 게시판글을 삭제할려고 들어왔는데 벌써 이렇게 빨리 답변을 주시다니...

    하여간 감사드립니다..

    글구 해결은 1000건단위로 commit하구 close,open을 했더닌 해결되었습니다.

    applyupdate할때 시간이 좀 걸리긴하지만서두 이정도야 감수해야지요..





    하여간 감사합니다...

    이렇게 해서 일단 이번 project은 1차 완성을 한 것 같습니다.

    ...