아래처럼 ADOQuery로 데이터를 읽어오면 1초도 안 걸리는 데 아래처럼 한번더 ADOQuery를 사용하면 시간이 너무 오래 걸리는데 개선 방법이 없나요? - 167개 레코드인데 Core Lab의 MSQuery를 사용할 때는 3초정도 밖에 안 걸리는 것이 비스타 때문에 ADOQuery로 하면 20초나 걸려 미치겠어요.
그래서 ADOStoredProc을 사용해봐도 마찬가지네요.
with adoqryTemp do
begin
close;
sql.Text := sql_str;
open;
end;
while not adoqryTemp.Eof do
begin
gr1.Cells[0,row] := IntToStr(row); gr1.Alignments[0,row] := taRightJustify;
gr1.Cells[1,row] := adoqryTemp.FieldByname('name').AsString;
with adoqryTMP2 do //이것을 빼면 빠른데 min함수가 엄청 시간을 잡아먹는지?
begin
close;
Sql.Text := 'select min(regdate) as fstdate from class_student where student_id=' +
adoqryTemp.FieldByname('id').AsString;
Open;
if RecordCount > 0 then
gr1.Cells[2, row] := FieldByname('fstdate').AsString;
end;
adoqryTemp.Next;
end;
=끝=
그래서 select top 1 regdate from class_student where student_id=' + adoqryTemp.FieldByname('id').AsString + ' order by regdate'; 로 바꿨더니 6초 걸림(20초 => 6초로 14초나 당겨짐).