2017-09-28 1 views
1

Sqlite의 PRAGMA의 지침에 따라 PRAGMA schema.journal_mode;이 journal_mode를 변경하고 off을 선택하면 삽입 기능의 성능이 향상됩니다. 내가 쓴 : 결국 기록C#에서 Sqlite 데이터베이스의 "journal_mode"를 변경하는 방법

PRAGMA Schema.journal_mode=off; 

이, 저는 믿습니다 SQLite는 데이터베이스의 저널링을 해제,하지만 난이없는 MyDatabase.sqlite라는 데이터베이스와 명령을 엽니 다

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;PRAGMA Schema.journal_mode=off;"); 

PRAGMA 명령을 추가 한 후 성능에 변화가 없으므로 올바른 방법이 무엇인지에 대한 단서가 있습니다.

나는 Tigran's Blog Post on Sqlite

답변

2

PRAGMA 키워드가 연결 문자열에 사용하지 않습니다에 언급 된 링크에서 SQLite는 라이브러리를 다운로드했습니다. 데이터 소스;

"저널 모드 = 꺼짐 : 적절한 연결 문자열 구문은 다음과 같습니다

SQLiteConnectionStringBuilder lcb = new SQLiteConnectionStringBuilder(); 
lcb.JournalMode = SQLiteJournalModeEnum.Off; 
lcb.DataSource = sqlFile; 
lcb.Version = 3; 

string myLtConnStr = lcb.ConnectionString; 

결과 : 다음을 발견 할 수

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;journal mode=Off;"); 

한 가지 방법은 SQLiteConnectionStringBuilder 객체를 사용하는 것입니다 = \ "C : \ SQLite Dbs \ mydata.db \"; 버전 = 3 "

썸 e DB 공급자는 많은 옵션을 가지고 있습니다 - 특히 DateTime 처리 및 옵션과 관련하여 -이 방법으로 전환 할 수 있습니다. 구문을 알면 ConnectionStringBuilder 객체를 삭제할 수 있습니다.

+0

이전 질문을 읽은 후에는 SQLite를 삽입하는 데 걸린 시간이 아니라 코드에 문제가 있다고 생각됩니다. – Plutonix

+0

예, 거래 방법을 사용하지 않는다는 것을 알았습니다. –

관련 문제