我有一个带有System.Data.Sqlite(1.0.82)的.NET 4应用程序(在混合模式下),用于访问加密数据库。
当我将应用程序安装到“c:\ program files \ myfolder”时,连接到sqlite数据库文件的速度很慢。日志文件显示它是sqlite connect语句,延迟了几秒钟。
执行以下操作时不会出现此问题:
我不知道这可能是什么原因......
答案 0 :(得分:5)
如果DB文件位于应用程序目录中,则UAC很可能将其移至“... appdata \ Local \ VirtualStore \ Program Files”目录。最佳做法是创建自己的appdata \ MyApp文件夹,并将原始数据库从c:\ program files \ MyApp文件夹中复制。
答案 1 :(得分:1)
以只读模式打开数据库很有帮助。 (无论如何,你应该只保留程序文件文件夹中的只读内容。)
只需将";Read Only=True"
附加到连接字符串。
private const string CONN_TEMPL = "Data Source={0};Version=3;Read Only=True";
var conn = new SQLiteConnection(
String.Format(CultureInfo.InvariantCulture, CONN_TEMPL, databasePath)
);