|
김승환 님이 쓰신 글 :
: TQuery 컴포넌트를 쓰다가 이상현상을 발견해서 이렇게 질문을 올립니다.
:
: TQuery의 용도가 데이터 조회용으로 쓰이기 때문에 QrySearch라고 명명했습니다.
:
: QrySearch->Close();
: QrySearch->SQL->Clear();
: QrySearch->SQL->Add("Select * From Insa Where name = :name");
: QrySearch->ParamByName("name")->AsString = "김승환";
: QrySearch->Open();
:
: 여기 까진데요.
: 다른곳 보다 Open(); 여기서 시간이 굉장히 오래걸립니다.(약 15초정도)
: 데이터는 20개 정도 밖에 없는데두 그렇네요.
:
: 참..
: QrySearch 컴포넌트 프로퍼티중 Active를 True로 디자인시에 설정을 했습니다.
: (그러니까 폼이 Create 될때 20개 정도의 데이터가 TDBGrid에 뿌려져서 나옵니다.)
:
: DB는 MS SQL Server 7.0 이고요...
:
: 같은 폼위의 다른 TQuery 컴포넌트의 Open(); 에는 즉시 반응을 해서 결과값을
: 시원스럽게 뿌려주는데 왜 QrySearch 컴포넌트에서는 Open 시 시간이 소요될까요?
:
: 고수님들의 고견을 기다립니다.
임펠리테리입니다.
쿼리의 속도는 찾아낼 레코드의 숫자가 아니라, 전체 레코드의 숫자에 영향을 받겠지요? 찾은 결과가 20개밖에 안된다고 해도 레코드가 몇만개 이상 있다면 찾는데에 시간이 꽤 걸릴거구요.
만약 다른 쿼리를 실행했을 때보다 속도가 많이 느리다면 인덱스를 설정했느냐 안했느냐의 차이일겁니다. name 필드로 검색을 하실 때 속도를 빠르게 하려면 name필드에 세컨더리 인덱스를 설정하면 됩니다.
그럼 이만...
|