如何在 C# 中更改 Sqlite 数据库的 "journal_mode"
How to change "journal_mode" of a Sqlite database in C#
按照 Sqlite 的 PRAGMA 的说明,我发现 PRAGMA schema.journal_mode;
更改了 journal_mode 并给出了我选择 off
的选项以提高插入功能的性能。我写道:
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;PRAGMA Schema.journal_mode=off;");
打开一个名为 MyDatabase.sqlite
的数据库和命令
PRAGMA Schema.journal_mode=off;
写在最后,我相信会关闭 sqlite 数据库的日志记录,但我不知道该怎么做,如果这是正确的方法,那么我做错了什么因为添加 PRAGMA 命令后,我发现性能没有变化。
中提到的 link 下载了 Sqlite 库
PRAGMA
关键字不适用于连接字符串。正确的连接字符串语法是:
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;journal mode=Off;");
发现这些的一种方法是使用 SQLiteConnectionStringBuilder
对象:
SQLiteConnectionStringBuilder lcb = new SQLiteConnectionStringBuilder();
lcb.JournalMode = SQLiteJournalModeEnum.Off;
lcb.DataSource = sqlFile;
lcb.Version = 3;
string myLtConnStr = lcb.ConnectionString;
结果:
"journal mode=Off;data source=\"C:\SQLite Dbs\mydata.db\";version=3"
一些数据库提供商有很多选项——特别是关于日期时间处理和选项——可以通过这种方式切换。了解语法后,您可以省略 ConnectionStringBuilder
对象。
按照 Sqlite 的 PRAGMA 的说明,我发现 PRAGMA schema.journal_mode;
更改了 journal_mode 并给出了我选择 off
的选项以提高插入功能的性能。我写道:
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;PRAGMA Schema.journal_mode=off;");
打开一个名为 MyDatabase.sqlite
的数据库和命令
PRAGMA Schema.journal_mode=off;
写在最后,我相信会关闭 sqlite 数据库的日志记录,但我不知道该怎么做,如果这是正确的方法,那么我做错了什么因为添加 PRAGMA 命令后,我发现性能没有变化。
中提到的 link 下载了 Sqlite 库PRAGMA
关键字不适用于连接字符串。正确的连接字符串语法是:
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;journal mode=Off;");
发现这些的一种方法是使用 SQLiteConnectionStringBuilder
对象:
SQLiteConnectionStringBuilder lcb = new SQLiteConnectionStringBuilder();
lcb.JournalMode = SQLiteJournalModeEnum.Off;
lcb.DataSource = sqlFile;
lcb.Version = 3;
string myLtConnStr = lcb.ConnectionString;
结果:
"journal mode=Off;data source=\"C:\SQLite Dbs\mydata.db\";version=3"
一些数据库提供商有很多选项——特别是关于日期时间处理和选项——可以通过这种方式切换。了解语法后,您可以省略 ConnectionStringBuilder
对象。