2017-09-28 3 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コマンドを追加した後でパフォーマンスに変化がないので、何が間違っているのでしょうか。

私はPRAGMAキーワードが接続文字列での使用のためではないTigran's Blog Post on Sqlite

答えて

2

に言及リンクから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 "

Som e DBプロバイダには、多くのオプションがあります(特に、DateTimeの処理とオプションについては、このように切り替えることができます)。構文が分かれば、ConnectionStringBuilderオブジェクトを削除することができます。

+0

前の質問を読んだ後、私は問題の大部分がコードにあると思っていますが、SQLiteを挿入するのにかかる時間ではありません。 – Plutonix

+0

はい、トランザクションメソッドを使用していないことがわかりました –

関連する問題