我们的应用程序连接到网络上的.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();
}
答案 0 :(得分:0)
因此经过多次测试后,我们已在机器上安装了Microsoft Access Database Engine 2010
版本14。卸载此版本并安装12.0版之后一切都很好。在网络驱动器上打开数据库需要稳定的30毫秒。