.mdb 上的数据库连接随着时间的推移而变慢
Database connection on .mdb slows down over time
我们的应用程序连接到网络上的 .mdb 文件。一切都很好,直到我们将计算机从 32 位 Windows 7 换成 64 位 Windows 10。自此操作以来,随着时间的推移,通过我们的 C# 代码连接到数据库变得越来越慢。它在启动应用程序后不到 1 秒的时间内开始。在 运行 应用程序之后。 8小时,打开数据库文件需要10多秒,而且还在上升。钙。访问数据库每 5 秒连接一次。
重新启动应用程序后一切正常。对于我们的客户来说,频繁重启不是一个长期的选择。查询本身在几毫秒内完成,关闭也可以。
我看到处理器使用率只有 10% 左右。我暂时不知道的内存。
有没有人知道为什么连接到数据库会随着时间的推移变慢?
public void OpenDb ( string _sOpenString )
{
this.sFilePathToAccessDb = _sOpenString;
this.sConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + this.sFilePathToAccessDb;
this.oOleDbConnection =
new System.Data.OleDb.OleDbConnection( this.sConnectionString);
this.oOleDbConnection.Open();
}
public void CloseDb()
{
if (this.oOleDbConnection != null)
{
this.oOleDbConnection.Close();
this.oOleDbConnection.Dispose();
}
this.oOleDbConnection = null;
}
public void foo()
{
OpenDb(@"\fooserver\databases\bar.mdb");
//do some stuff
CloseDb();
}
因此,经过多次测试后,我们已经在机器上安装了 Microsoft Access Database Engine 2010
版本 14。卸载此版本并安装 12.0 版后一切正常。在网络驱动器上打开数据库稳定需要 30 毫秒。
我们的应用程序连接到网络上的 .mdb 文件。一切都很好,直到我们将计算机从 32 位 Windows 7 换成 64 位 Windows 10。自此操作以来,随着时间的推移,通过我们的 C# 代码连接到数据库变得越来越慢。它在启动应用程序后不到 1 秒的时间内开始。在 运行 应用程序之后。 8小时,打开数据库文件需要10多秒,而且还在上升。钙。访问数据库每 5 秒连接一次。
重新启动应用程序后一切正常。对于我们的客户来说,频繁重启不是一个长期的选择。查询本身在几毫秒内完成,关闭也可以。 我看到处理器使用率只有 10% 左右。我暂时不知道的内存。
有没有人知道为什么连接到数据库会随着时间的推移变慢?
public void OpenDb ( string _sOpenString )
{
this.sFilePathToAccessDb = _sOpenString;
this.sConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + this.sFilePathToAccessDb;
this.oOleDbConnection =
new System.Data.OleDb.OleDbConnection( this.sConnectionString);
this.oOleDbConnection.Open();
}
public void CloseDb()
{
if (this.oOleDbConnection != null)
{
this.oOleDbConnection.Close();
this.oOleDbConnection.Dispose();
}
this.oOleDbConnection = null;
}
public void foo()
{
OpenDb(@"\fooserver\databases\bar.mdb");
//do some stuff
CloseDb();
}
因此,经过多次测试后,我们已经在机器上安装了 Microsoft Access Database Engine 2010
版本 14。卸载此版本并安装 12.0 版后一切正常。在网络驱动器上打开数据库稳定需要 30 毫秒。