
我有一个180万行文本文件,我需要注入一个sql表,我的代码工作正常,只是有点慢(如每天250k行).不幸的是,我有大约4个这样大小的文本文件,所以我需要一种方法来加快这个过程.任何帮助,将不胜感激.如果某些代码看起来不正确,那么我会省略一些隐私的东西.我知道我可以砍掉file.appendall,但我用它来跟踪它,我也做了明星,所以我可以在第二天拿起来不停止备份.
DirectoryInfo dinfo = new DirectoryInfo(ocrdirectory);fileInfo[] files = dinfo.Getfiles("*.txt");foreach (fileInfo filex in files){ string[] primaryfix = file.ReadAlllines(dinfo + "\" + filex); string filename = filex.ToString(); string[] spltifilename = filename.Split('.'); foreach (string primary in primaryfix) { string sqltable = ("dbo.amu_Textloadingarea"); string sql = "update " + sqltable + " set [Text] = [Text] + '" + primary +"|"+ "' where unique = '" + spltifilename[0] + "'"; file.AppendAllText(@"C:\convert\sqltest.txt",sql+"\n"); sqlConnection con = new sqlConnection("Data Source= Cote ;Initial Catalog= eCASE;Integrated Security= sspI"); con.open(); sqlCommand cmd = new sqlCommand(sql,con); sqlDataReader reader = cmd.ExecuteReader(); con.Close(); Console.Writeline(start); start++; }解决方法 你需要研究BulKcopY.特别是,看看sqlBulkcopy类. http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
http://msdn.microsoft.com/en-us/library/7ek5da1a%28VS.80%29.aspx
关于使用sqlBulkcopy将大型文本文件(1M行)加载到DB的一个不错的博客条目
http://blog.stevienova.com/2008/01/16/net-fastest-way-to-load-text-file-to-sql-sqlbulkcopy/
总结以上是内存溢出为你收集整理的C#海量SQL更新查询全部内容,希望文章能够帮你解决C#海量SQL更新查询所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)