귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
강좌, 팁, 정보 강좌, 팁, 정보 입니다.
글내용 - 강좌, 팁, 정보
 SQLite 대량 insert 시 속도 저하 개선.
사천왕
(김제성)
2019-01-14 오후 1:24:54
카테고리: 팁
1720회 조회



등록된 파일이 없습니다.
SQLite 에서 대량으로 insert 시에 속도가 너무 느려서 방법을 찾던차 인터넷에서 찾은 방법입니다.
SQLite 사이트에 설명이 있다던데, 매뉴얼을 덜보다보니... ^^


var
  QueryStr: string;
  EndTime, StartTime, i: integer;
begin

  // 여기가 추가됨.
  SQLQuery1.SQL.Text := 'PRAGMA synchronous=0';
  SQLQuery1.ExecSQL;
  // 여기까지.

  StartTime := GetTickCount;

  for i := 1 to 1000 do begin
    QueryStr := 'INSERT INTO log (date, time, matchrate)';
    QueryStr := QueryStr + 'VALUES ("2018-10-20", "14:30:20", "' + IntToStr(i) + '");';
    try
      SQLQuery1.SQL.Text := QueryStr;
      SQLQuery1.Prepared := true;

      SQLQuery1.ExecSQL();
    except
      on E: Exception do begin
        Memo1.Lines.Add('Exception raised with message: ' + E.Message);
      end;
    end;
  end;

  EndTime := GetTickCount;
  Memo1.Lines.Add('걸린 시간: ' + IntToStr(EndTime - StartTime));

  // 여기가 추가됨.
  SQLQuery1.SQL.Text := 'PRAGMA synchronous=2';
  SQLQuery1.ExecSQL;
  // 여기까지.

end;