Q&A

  • SQL서버와ADO에 관해서...속도가 원래 그런가요?
안녕하세요?

아주.. 이상한점이 있어서..



첫번째는 SQL Server 7.0을 써서..

테이블을 하나 만들었습니다. 테스트 용으로요..

테스트 테이블은 필드가 30여개넘는 좀 크기가 크구요..

Row가.. 6000건 정도 됩니다.

단순한 테스트 인데요..

파라독스 테이블로 자료를 변환할 때에..(SQL서버는 좀 이상한거 같습니다)

10메가 정도 나오는 테이블입니다.

(참고로.. 전 델파이 5.0으로 테스트 중인데요...)



BDE와 ADO로 단순한 테스트를 해봤는데요..

BDE는 Open/Close시.. 0.13초정도를 보이는데..

ADO는 Connect시.. 11.2.초를 보이더군요..

테이블과 쿼리 의 평균입니다. 약간의 차이를 보이긴 하지만.

제가 연결한 방식이 잘못되었나 하고 그래서..

비주얼 베이직에서 연결을 해봤으나.. 약간은 빠르지만. 7초정도의 시간을 보입니다.

디비 프로그래밍에서 1만건도 안되는 아주약소한(?) 데이터를 열고

닫는 시간에서 조차 이렇게 시간이 걸리면..

복합한 질의문에서는 어떻게 시스템이 가동이 될지 의문이...가서요..



그리고 SQL서버를 이번에 6.5를 잠깐 쓰다가 7.0을 쓰거든요..

물론 서버의 성능이 지금 펜티엄 400에 램 128메가로 약소하긴 하지만.

두세사람 컴파일 하면서 개발하기에는 부하가 걸리지 않으리라고 봅니다.



앞에서 말씀드린 6000레코드의 테이블을 여는 데는 0.12초 정도가 걸리지만

테이블이나 쿼리에서 레코드의 단순한 이동..즉..

TTable.Next;

TQuery.Next;

이런 방식으로 .. 테이블을 처음부터 마지막 레코드 까지 이동하는데..

1분15초 정도가 걸리더군요..

아무리 클러스터 인덱스가 잡히지 않았더라도..

제생각에는 인덱스가 효과를 발휘하려면. 적어도 1만건 이상의 데이터라고

생각되거든요.



(참고로.. 로컬..

파라독스나.. dbaseIV에서는 이런 이동이 1.5초 정도면 됩니다.)



지금 다른 서버를 테스트 하지 못했는데. 원래 이런 속도가 나오는지 ?도

궁금합니다. 아니면 SQL서버가 성능이 낮은건지..

이렇게 속도가 느려버리면.

여러가지 원인 서버성능. 랜속도(랜은 안느림니다. 100 스위칭 허브 현재 8명사용중)

튜닝의 원인이 있겠지만. 이건 정말 너무해서요..



테이블에 있는 SetKey메소드나..

Locate메소드를 쓸수가 없습니다.

(오라클 서버상에서 테스트를 할생각입니다. 같은 테이블을 가지고 말이죠)

(이렇게 느리면 정말 작은 규모의 프로젝트에서도 힘이 들거 같아서요)



공력이 뛰어난 고수님들의 진언을 부탁드립니다.

테스트를 하고나서 하두 허탈해서요..

그럼 좋은 프로그래밍 하세요.

이만.







0  COMMENTS