在对网络驱动器上的访问数据库执行时,OLEDB运行缓慢

时间:2011-01-12 13:02:04

标签: c# oledb

我将数据导出为位于网络驱动器上的访问数据库中的行。目前,我使用以下c#代码:

using(OleDBCommand oleDBCommand = new oledbcommand(insertstring,conn))
{
    OleDbParameter param = new OleDbParameter();
    param.ParameterName = " .. ";
    oleDbCommand.Parameters.Add(param);
    ....
    ....
    ....                 

    foreach(Row row in rows)
    {
        oleDBCommand.parameters.add["asd"].value= row.o;
        ....
        ....

        oleDCCommand.executenonquery();
    }
}

导出100000行大约需要一分钟。但是当导出到位于网络驱动器上的数据库时, 大约需要一个小时。是什么原因造成了这个问题,以及如何解决这个问题?

我正在使用Microsoft.ACE.OLEDB.12.0 编辑:网络驱动器非常快,从某种意义上说,将100 MB的文件从本地移动到网络大约需要几分钟。

1 个答案:

答案 0 :(得分:1)

鉴于证据,除网络延迟外没有答案。我建议你在本地和网络驱动器上尝试较小的批次,看看它们的表现如何。例如,尝试100,1000和10000的批次并比较数字。如果差异线性扩展,即,如果网络驱动器总是慢60倍,那么它的延迟。如果它运行速度慢两倍,直到你达到一定数量(或者甚至某个记录),那么它就是其他东西,比如缓冲区已经耗尽,或其他东西。

希望这有帮助。