Q&A

  • TTable을 Open시 Load되는 레코드수는?
안녕하세요



DB는 MS-SQL7.0을 사용하고 있고요 테이블의 Low는 10만개라고 할때

테이블을 Open할때 TTable을 사용하면 테이블의 레코드 전체가 Load 되는 건가요?

또 테이블을 TQuery로 Open할때는 10만개레코드 전체의 내용이 Load되는 건지요?

2  COMMENTS
  • Profile
    김상면 1999.11.25 01:16
    그리드에 Table을 연결해서 테스트를 해보시면 알 수 있습니다...

    보통 한번에 20 Row(지가 테스트 해본 결과) 정도를 읽는 것 같더군요...

    그리드 포커스를 옮기시고 PageDown키를 한번 눌러 보세요...

    20Row정도가 지나면 SQL 모래시계가 보이다 사라집니다...

    SQL 모래시계가 보일 때 응용프로그램은 DB Server에게 다음 Row들을 요구합니다...

    PageDown 키를 계속해서 누르시면 벅벅대는걸 보실 수 있을 겁니다...

    100,000만건이면 Data가 조금 많군요...

    Ctl+End 키를 누르시면 금방 테이블의 마지막 로우들이 출력됩니다...

    이건 응용프로그램이 100,000만 건을 다 읽고 출력시키는 게 아닙니다...

    마지막 20 Row를 읽어서 출력할 뿐이죠...

    자료가 많을 경우 그리드를 사용하실 경우는 고려해야할 사항이 정말 많을 겁니다...

    검색, 수정, 삭제시 속도가 무지 느려지죠...



    강성만 wrote:

    > 안녕하세요

    >

    > DB는 MS-SQL7.0을 사용하고 있고요 테이블의 Low는 10만개라고 할때

    > 테이블을 Open할때 TTable을 사용하면 테이블의 레코드 전체가 Load 되는 건가요?

    > 또 테이블을 TQuery로 Open할때는 10만개레코드 전체의 내용이 Load되는 건지요?

  • Profile
    신승욱 1999.11.24 23:32
    강성만 wrote:

    > 안녕하세요

    >

    > DB는 MS-SQL7.0을 사용하고 있고요 테이블의 Low는 10만개라고 할때

    > 테이블을 Open할때 TTable을 사용하면 테이블의 레코드 전체가 Load 되는 건가요?

    > 또 테이블을 TQuery로 Open할때는 10만개레코드 전체의 내용이 Load되는 건지요?



    저도 잘 모르지만 그래도 도움이 될까하고 첨으로 답변을 해봅니다. 저도 도움이 되고 싶어서...히히

    먼저 TTable로 DB를 오픈하면 일단 모든 레코드를 load합니다. 만약 filter속성으로 조건을 준다고 하더라도 일단 모든 레코드를 load한 다음 조건에 맞는 데이타만 나타내주기 때문에 결국은 모든 레코드를 가져온다고 봐야겠죠?

    반면 TQuery는 SQL문의 조건에 맞는 값만을 선택하여 load하기 때문에 조건에 따라 가져오는 데이타가 달라집니다. 어느쪽이 더 효율적인 방법인지는 경우에 따라 달라지기 때문에 적절히 TTable와 TQuery를 병행하여 사용해야 할껄요?

    히 ....조금 부끄럽다....도움이 안된다면 그냥 웃고 넘어가세요...