无处不在的场景:
我有一个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++;
}
Run Code Online (Sandbox Code Playgroud)
cod*_*ife 10
你需要研究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/
| 归档时间: |
|
| 查看次数: |
992 次 |
| 最近记录: |