OleDbConnection处理速度很慢(2s)

问题描述 投票:4回答:1

我在同一网络的Windows共享上的OleDbConnection访问.mdb文件时遇到问题。当将其放置在使用部分的末端时,需要2秒钟以上的时间。打开连接并执行查询或填充数据表仅需要50ms。

这是我的代码:

private const string DbStConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;data source=\\master\db\datenezpz2004\dbST.mdb";
private const string DbStConnectionStringIp = @"Provider=Microsoft.ACE.OLEDB.12.0;data source=\\192.168.254.10\db\datenezpz2004\dbST.mdb";

using(var connection = new OleDbConnection())
{
    //Die richtige Verbindungszueichenfolge finden
    connection.ConnectionString = DbStConnectionString;
    try
    {
        connection.Open();
    }
    catch(OleDbException)
    {
        connection.ConnectionString = DbStConnectionStringIp;
        connection.Open();
    }
    //Command ausführen
    const string query = "SELECT ST.idst, FName FROM ST WHERE (((ST.Status) = True) AND ((ST.IDArt) = 11))"; // AND ((ST.Fname) LIKE '%{username}%');";
    using(var command = new OleDbCommand(query, connection))
    {
        using(var adapter = new OleDbDataAdapter(command))
        {
            adapter.Fill(employees);
        }
    } 
//From Here 
}
//To Here => 2 seconds

基本上,“从这里”到“到这里”是该代码中最耗时的部分。你有一个主意,为什么这么慢?

c# database ms-access oledbconnection
1个回答
0
投票

我也有这个问题,除了性能甚至更差(调用Dispose大约需要20秒)。来自相关问题的建议解决了该问题:将以下内容添加到连接字符串中:

OLE DB Services=-1;
© www.soinside.com 2019 - 2024. All rights reserved.