切换数据库文件时Sqlite

时间:2014-06-17 05:25:58

标签: .net database sqlite system.data.sqlite


我有.Net应用程序,用户可以在其中打开和关闭许多Sqlite数据库文件, 一次一次。
我使用System.Data.SQLite DLL包装器 从一个数据库移动到另一个数据库时,connection.close()是否足够,
我在一些地方看到了GC.Collect() 如何正确处理这些数据库切换?

谢谢,Avi。

1 个答案:

答案 0 :(得分:0)

此处有connection.close()GC.Collect()的效果的详细说明:

System.Data.SQLite Close() not releasing database file

基本上connection.close()只处理句柄但在垃圾收集器运行之前不释放数据库指针。 请注意GC.Collect()是一项繁重的操作,如果您的上下文切换太频繁并且您不需要删除数据库文件,您可能最好将指针放在内存中,而.Net框架可以处理它

我的建议是,对这两个选项进行一些性能测试:

  • 使用GC.Collect
  • 没有GC.Collect

检查进程的延迟,内存使用情况和CPU使用情况。根据测试结果做出决定。

祝你好运!

[编辑] 阅读更多关于它,我发现了这个链接:

What is the difference between connection.Close() and connection.Dispose()?

根据问题,在使用using语句或致电connection.Dispose()时,无需调用GC.Collect()方法。

干杯,