procedure TForm1.Formcreate(Sender: TObject);
begin
datasource1.DataSet:= query1;
dbgrid1.DataSource:=datasource1;
end;
폼 생성시 위와 같이 연결해서 db를 사용합니다. (BDE 사용해서요)
프로그램을 실행시 처음에 검색할때는 시간이 1분이상 걸리구요
(레코드는 200 개 정도)
프로그램을 닫지 않고 다시 검색하면 금방 나오거든요.
왜 그러는지, 처음 실행할때 빠르게 할수는 없을까요?
문제점이 뭔지 부탁드립니다.
오라클의 경우에는 SQL구문을 하나 조회하는 데 단계를
거치게 됩니다...
1 .Parse
SQL 문의 문법적 에러 체크.
공유 SQL 영역에 똑같은 문장이 존재하는지 검사.
2. Execute
실행계획에 따라 데이터를 검색
3. Fetch
select 문에서만 실행되는 단계로서 계속된 결과의 행(row) 들을
사용자에게 반환한다.
위의 과정을 거치기 때문에... 처음에는 시간이 걸립니다...
그런데 두번째에는 공유 SQL 영역에 똑같은 문장이 존재하는지 검사후
실행하기 때문에 검색속도가 처음 보다는 무척 빨라 집니다...
님의 경우에는 클라이언트에서 조회가 이루어지지 않나 생각이 듭니다..
이런 경우 해결 방법은 트랜잭션을 서버로 옮기는 방법이 있습니다...
즉 스토어드 프로시저를 이용하여 조회등을 하시면 좀더 좋은 결과를
얻지 않을까 하고요... 여기에 더불어.. 인덱스를 늘려준다던가...
튜닝쪽으로 생각을 한번 해보십시요...