加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 加速插入mdb

发布时间:2020-12-16 00:12:52 所属栏目:百科 来源:网络整理
导读:有没有办法加快插入到mdb? using (StreamReader sr = new StreamReader(_localDir + "" + _filename)) while ((line = sr.ReadLine()) != null){ //sanitize the data} 对于来自csv的约2mil记录,这需要大约20秒 但是当我添加mdb插入时,我几乎不能在10分钟
有没有办法加快插入到mdb?

using (StreamReader sr = new StreamReader(_localDir + "" + _filename))
  while ((line = sr.ReadLine()) != null)
{
   //sanitize the data
}

对于来自csv的约2mil记录,这需要大约20秒
但是当我添加mdb插入时,我几乎不能在10分钟内获得10,000条记录,所以你可以看到它将永远消失

using (StreamReader sr = new StreamReader(_localDir + "" + _filename))
 while ((line = sr.ReadLine()) != null)
{
//sanitize the data
using (OleDbConnection con = new OleDbConnection(_conStr))
 using (OleDbCommand cmd = new OleDbCommand())
 cmd.Parameters.AddWithValue...//I have 22 params
cmd.ExecuteNonQuery();

}

有没有更好的办法?连接池?线程?
这是我的constr Provider = Microsoft.Jet.OLEDB.4.0; Data Source = mypath; Jet OLEDB:Engine
类型= 5”

问候

_Eric

解决方法

您是否可以使用直接从csv插入的查询?例如:

SELECT ID,Field1 INTO NewTable 
FROM [Text;HDR=YES;FMT=Delimited;IMEX=2;DATABASE=C:Docs].Some.CSV

您可以使用与非标准分隔符类似的东西,但是您需要与要导入的文件位于同一目录中的Schema.ini文件.它只需要包含:

[tempImportfile.csv]
TextDelimiter='

您将不得不稍微改变连接字符串,这似乎工作:

Text;HDR=YES;FMT=Delimited;DATABASE=C:Docs

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读