我将数据导出为位于网络驱动器上的访问数据库中的行。目前,我使用以下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的文件从本地移动到网络大约需要几分钟。
答案 0 :(得分:1)
鉴于证据,除网络延迟外没有答案。我建议你在本地和网络驱动器上尝试较小的批次,看看它们的表现如何。例如,尝试100,1000和10000的批次并比较数字。如果差异线性扩展,即,如果网络驱动器总是慢60倍,那么它的延迟。如果它运行速度慢两倍,直到你达到一定数量(或者甚至某个记录),那么它就是其他东西,比如缓冲区已经耗尽,或其他东西。
希望这有帮助。