반응형
[C#] SQLite insert 할 때 속도 개선
string txtSQLQuery = "insert into " + tablename +
" (word,img1) values ('" + db.word + "'," + "@Image1)";
SQLiteCommand sql_cmd = new SQLiteCommand(txtSQLQuery, sql_con);
SQLiteParameter pa = new SQLiteParameter();
pa.ParameterName = "@Image1";
pa.Value = "temp.jpg";
sql_cmd.ExecuteNonQuery();
C#에서 SQLite Insert시 그냥 이렇게 해주셨었는데..
속도가 되게 느렸다 ㅠㅠ
SQLite 에서는 Transaction을 사용하고 안하고의 차이가 Insert 사용시 엄청 나나보다..
그래서 !!
아래와 같이 2개의 함수를 만들어서
insert 이전에
Begin을 해주고 다 해주고 난 뒤에는
Commit을 해준다.
private void BeginTran(SQLiteConnection conn) {
SQLiteCommand command = new SQLiteCommand("Begin", conn);
command.ExecuteNonQuery();
command.Dispose();
}
private void CommitTran(SQLiteConnection conn) {
SQLiteCommand command = new SQLiteCommand("Commit", conn);
command.ExecuteNonQuery();
command.Dispose();
}
Begin -> Insert -> Commit 순서로 진행될 수 있도록 말이다.
레알북 https://real-book.tistory.com
반응형