我在SQLite上使用NHibernate的c#。 System.Data.SQLite版本1.0.88 SQLite的版本3.7.17不能使用SQLite的WAL模式
我最近發現了SQLite的WAL mode它看起來像正是我需要的。 問題是,我似乎無法得到它的工作。
文檔簡單地指出:
換算至WAL模式,使用下面的編譯指示:
PRAGMA journal_mode = WAL;
journal_mode pragma返回一個字符串,它是新日誌模式的 。成功後,該編譯指示將返回字符串 「wal」。如果無法完成到WAL的轉換(例如,如果VFS不支持必需的共享存儲器基元,則爲 ) 則日誌記錄模式將保持不變並且從原語返回 的字符串將爲先前的日誌記錄模式(例如 「刪除」)。
我一直都在代碼中嘗試這樣做:
ISQLQuery query = session.CreateSQLQuery("PRAGMA journal_mode=WAL;");
object result = query.UniqueResult();
和SQLiteman管理應用程序中。
在每種情況下,我都會得到'delete'的返回值。即數據庫未能進入WAL模式。 問題是,我不知道爲什麼。我可以在文檔中看到的唯一可能性是您的文件系統不支持共享內存優先級,但我在Win 7上,所以這不是問題。
任何想法如何啓用WAL模式或找出爲什麼它不起作用?
是的,這是要走的路。 –