.mdb上的数据库连接随着时间的推移而减慢

时间:2017-12-01 10:43:18

标签: c# database ms-access oledbconnection

我们的应用程序连接到网络上的.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();
}

1 个答案:

答案 0 :(得分:0)

因此经过多次测试后,我们已在机器上安装了Microsoft Access Database Engine 2010版本14。卸载此版本并安装12.0版之后一切都很好。在网络驱动器上打开数据库需要稳定的30毫秒。