아래 이미 답변을 다신분과 같은 생각입니다.
저의 경우에는 10만건까지는 테스트 해봤습니다.
파라독스의 속도 문제는
제가 경험한 바로는 여타 RDBMS 보다 빠릅니다.
(그럴 수 밖에 없지요)
다만 Sub Query 자체가 문제가 된 것이 아니고,
Sub Query 자체가 데이타 갯수에 대하여
기하급수적인 연산을 하도록 되어 있는 듯 합니다.
때문에 데이타 갯수가 얼마 증가하지 않더라도
그속도가 거의 환장할 수준이 되는 거지요.
쿼리 한방으로 끝내실 생각마시고
로직을 다시 세우심이 좋을 듯 합니다.
Voice of Delphi, 류..
EzyRyder 님이 쓰신 글 :
: 안녕하세요?
: 윈도우 98에 델파이 4.0에서 어플을 개발중입니다.
: DB는 파라독스를 썼는데..
: 개발은 한다음 테스트를 하던중 첨에 데이타가 얼마 안되는 테이블로
: 테스트를 하면 잘 돌아갑니다.
: 그런데...레코드가 1600개 정도되는 테이블들을 올려놓고 테스트하면
: 이게 그냥 멎어버립니다.
: 그래서 SQLExplore에 다가 sql문을 옮겨놓고 돌려봐도 SqlExplore 역시
: 멎어버립니다. ㅠㅠ
: 테이블의 레코드를 몇개만 놔두고 지워버린뒤 돌리면 잘됩니다.
: 아무리 생각해도 파라독스DB의 한계같은데.. 겨우 1600건을 올릴뿐인데
: 죽는다니... 그래도 DB인데...
: 제가 쿼리문을 잘못쓴건지..파라독스 자체의 문제인지..
: 고수님들의 조언을 듣고자 합니다.
: 해결 방법을 알려주시면 정말 감사하구요...
: 그럼 건강하시구요.
: 답변 기다리겠습니다.
: 제가 사용한 쿼리문입니다.
:
: SELECT a.num, a.name,a.idyear2, a.idmon, a.idday,a.idsex,a.id,a.pass,a.add1,a.add2,a.add3,
: a.add4,c.totadd,c.tot, c.aveadd,c.rank,b.gubun, b.gwacode , b.sums,d.gwaname
: FROM examman as a, grade as b, score as c,gwamok as d
: WHERE (a.examcode = b.examcode) AND (b.examcode = c.examcode)
: AND (c.examcode = d.examcode)
: AND (a.num = b.num) and (b.num = c.num)
: AND (a.examcode = b.examcode) AND (b.examcode = c.examcode)
: AND (c.examcode = d.examcode)
: AND (a.jikcode = b.jikcode) AND (b.jikcode = c.jikcode)
: AND (c.jikcode =d.jikcode)
: AND gwaname IN (SELECT gwaname FROM gwamok
: WHERE grade.examcode = gwamok.examcode
: AND grade.jikcode = gwamok.jikcode
: AND grade.gubun =gwamok.gubun
: AND grade.gwacode = gwamok.gwacode)
: OREDER BY num,name,gubun,gwacode
:
|