내 WinForms 앱에서 SQLite DB로 이진 파일의 많은 양의 데이터를로드하고 있습니다. DB에 대한 조회를 수행하여 각각의 새로운 데이터 조각을 추가할지 여부를 결정합니다.SQLite 로딩 속도를 높이기 위해 캐시로 데이터 셋 클래스를 사용해야합니까?
If LookUpResult Then
AddNewData
Else
DiscardNewData
End If
이것은 느립니다. INSERT는 오랜 시간이 걸리는 것 같습니다. DataTable 또는 DataSet 클래스를 사용하여 데이터를 RAM에로드 한 다음 SQLite DB에 백그라운드 작업으로 써야합니까? 또는 DataTable 개체에서 한 번에 많은 행을 삽입하는 것이 비용이 적게 듭니까?
이전에 모든 데이터를 사용자 지정 클래스에로드하고 있었지만 빠른 속도 였지만 메모리 제한이 발생할 가능성이 있으므로 DB로 이동했습니다. 나는 SQLite가 RAM에 INSERT를 캐시 할 것이라고 생각했을 지 모르지만 그럴 것 같지 않습니다.
어떤 조언을 주셔서 감사합니다.
거래를 사용하고 있습니까? –
아니요, 지금까지는 들어 본 적이 없었으므로 여러 개의 INSERT를 수행 한 다음 모두를 한 번에 실행하면 속도가 빨라질 것 같습니다. 나는 새로운 데이터가 추가되어야 하는지를 결정하기 위해 이미 추가 된 데이터를 검색 할 필요가 있기 때문에 이것이 나를 위해 작동한다고 생각하지 않는다. 아마도 커밋되지 않은 INSERT는 SELECT 쿼리에 의해 반환되지 않습니다. – Guy