Q&A

  • 서버디비의 Query와 테이블의 속도비교?..
안녕하세요 델가족 여러분

아래의 구문은 서버의 오라클디비를 읽어서 있으면 내용을 수정하는 구문입니다.

디비의 레코드 숫자가 현재는 약 3000건 정도인데 앞으로 점점 더 커저 10000건

20000건으로 커집니다.

이럴때 아래구문을 커리로 하니 두번 Open하는 결과가 되네요

Table을 사용한다면 Findkey로 찾아서 있으면 그대로 수정할수 있으니까

Table이 훨씬 빠르지 않나요?



질문1. 테이블이 훨씬 빠르지 않을까요?

질문2. 아래구문이 일반적인 수정구문인가요?

혹 다르게 수정하시는 분을 좀 알려주세요...



감사합니다.



===================================================================

with mastdata.SQLcdms do begin

close;

sql.clear;

sql.add('select cd_ysdt From Cdmsdb');

sql.add('where(cd_tpcd = :p_tpcd and cd_year = :p_year and cd_mnth = :p_mnth');

sql.add(' and cd_srno = :p_srno)');

parambyname('p_tpcd').asstring := Q_jjkb2.text;

parambyname('p_year').asstring := Q_year2.text;

parambyname('p_mnth').asstring := Q_mnth2.text;

parambyname('p_srno').asstring := Q_ilno2.text;;

open;

if recordcount > 0 then begin

with SQLcdms2 do begin

close;

sql.clear;

sql.add('Update Cdmsdb Set');

sql.add('cd_ysdt = :p_ysdt');

sql.add('where(cd_tpcd = :p_tpcd and cd_year = :p_year and cd_mnth = :p_mnth');

sql.add(' and cd_srno = :p_srno)');

parambyname('p_tpcd').asstring := Q_jjkb2.text;

parambyname('p_year').asstring := Q_year2.text;

parambyname('p_mnth').asstring := Q_mnth2.text;

parambyname('p_srno').asstring := Q_ilno2.text;;

parambyname('p_ysdt').asstring := ac_mddt.text;

Execsql;

end;

end;

end;

mainform.database1.commit;

Except

begin

mainform.database1.rollback;

showmessage('입력실패.!');

Exit;

end;

end;

0  COMMENTS