OleDbConnection处理速度非常慢(2秒)



OleDbConnection访问同一网络中Windows共享上的.mdb文件时遇到问题。当它在使用部件结束时被处理时,它需要2秒钟以上的时间。打开连接并执行查询或填充DataTable最多只需要50ms。

这是我的代码:

private const string DbConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;data source=\serversharefile.mdb";
private const string DbConnectionStringIp = @"Provider=Microsoft.ACE.OLEDB.12.0;data source=\192.168.1.1\sharefile.mdb";
using(var connection = new OleDbConnection())
{
    connection.ConnectionString = DbConnectionString;
    try
    {
        connection.Open();
    }
    catch(OleDbException)
    {
        connection.ConnectionString = DbConnectionStringIp;
        connection.Open();
    }
    const string query = "SELECT somefield FROM sometable WHERE someotherfield=1)";
    using(var command = new OleDbCommand(query, connection))
    {
        using(var adapter = new OleDbDataAdapter(command))
        {
            adapter.Fill(employees);
        }
    } 
//From Here 
}
//To Here => 2 seconds

基本上";从这里";至";到这里";是代码中最耗时的部分。你有想法吗?为什么这么慢?

我也遇到了这个问题,只是性能更差(调用Dispose大约需要20秒)。一个相关问题的建议解决了这个问题:在连接字符串中添加以下内容:

OLE DB Services=-1;

相关内容

  • 没有找到相关文章

最新更新