2017-09-28 13 views
1

En suivant les instructions de Sqlite PRAGMA j'ai trouvé que PRAGMA schema.journal_mode; change le mode journal_mode et donné les options que j'ai choisi off pour augmenter les performances de la fonction d'insertion. J'ai écrit:Comment changer "journal_mode" d'une base de données Sqlite en C#

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

qui ouvre une base de données appelée MyDatabase.sqlite et la commande

PRAGMA Schema.journal_mode=off; 

qui est écrit à la fin, je crois désactive la journalisation de la base de données SQLite, mais je n'ai pas un indice sur la façon de le faire et si c'est la bonne façon alors qu'est-ce que je fais mal parce que je ne vois pas de changement dans les performances après l'ajout de la commande PRAGMA.

J'ai téléchargé la bibliothèque SQLite d'un lien mentionné dans Tigran's Blog Post on Sqlite

Répondre

2

Le mot-clé PRAGMA n'est pas pour une utilisation dans les chaînes de connexion. La syntaxe de la chaîne de connexion correcte serait:

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

Une façon de découvrir ces derniers est d'utiliser l'objet SQLiteConnectionStringBuilder:

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

string myLtConnStr = lcb.ConnectionString; 

Résultat:

« mode journal = Off; source de données = \ "C: \ SQLite Dbs \ mydata.db \"; version = 3 "

Som Les fournisseurs de DB ont de nombreuses options - en particulier en ce qui concerne la gestion et les options de DateTime - qui peuvent être basculées de cette façon. Une fois que vous connaissez la syntaxe, vous pouvez définir l'objet ConnectionStringBuilder.

+0

Notez qu'après avoir lu votre question précédente, je suspecte que la plupart du problème est avec votre code, pas le temps que SQLite doit insérer. – Plutonix

+0

Oui, j'ai découvert que je n'ai pas utilisé la méthode de transaction –