我一直认为数据库连接是最好使用和关闭的。但是,使用SQLite Im不确定是否适用。我使用“使用连接”语句进行所有查询。因此,据我了解,我先打开一个连接,然后关闭它。关于SQLite和最佳用法,最好在使用程序的过程中打开一个永久连接,还是继续使用当前使用的方法。

我正在使用VB.net Windows程序的数据库,该程序具有大约2gig的相当大的DB。

我当前的连接方法示例

  Using oMainQueryR As New SQLite.SQLiteCommand
            oMainQueryR.CommandText = ("SELECT * FROM CRD")
            Using connection As New SQLite.SQLiteConnection(conectionString)
                Using oDataSQL As New SQLite.SQLiteDataAdapter
                    oMainQueryR.Connection = connection
                    oDataSQL.SelectCommand = oMainQueryR
                    connection.Open()
                    oDataSQL.FillSchema(crd, SchemaType.Source)
                    oDataSQL.Fill(crd)
                    connection.Close()
                End Using
            End Using
    End Using

最佳答案

与所有事物数据库一样,它取决于。在这种sqlite的特定情况下,您需要查看两个“依赖项”:


您是数据库的唯一用户吗?
隐式事务何时提交?


对于第一个项目,如果有数据库的其他用户,或者很可能同时有多个进程同时访问您的sqlite数据库文件,则您可能希望经常打开/关闭不同的连接。

对于第二项,我不确定sqlite的行为方式。某些数据库引擎在关闭连接之前不会提交隐式事务。如果sqlite是这种情况,则您可能希望更频繁地关闭连接。

连接应该在.Net中短暂存在的想法主要适用于Microsoft Sql Server,因为Sql Server的.Net提供程序也能够利用称为连接池的功能。在Sql Server之外,此建议并非完全没有优点,但并不是给定的。

08-06 01:32
查看更多