我正在尝试制作一项服务,有时会将csv文件中的1亿行导入数据库。
我的代码非常慢(每个请求只需0.5秒),我必须提出很多请求。
我有两列,它们都是主键。因此,由于索引,它可能会很慢。 但是,如果我使用Microsoft SQL Server Management Studio(导入向导)进行导入 - 它的工作速度非常快。
有没有办法让它更快或请求更少?
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
long i = 0;
string result = "";
StringBuilder sb = new StringBuilder();
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
string[] data = s.Split(',');
sb.Append(string.Format("('{0}',{1}),", data[0], data[1]));
i++;
if (i % 1000 == 0)
{
result = sb.ToString();
string queryString = "USE[PassportExpiredTestBase]\r\n" +
"INSERT INTO[dbo].[PassportList]([Series],[Number])VALUES" +
result.Substring(0, result.Length - 1);
SqlCommand command = new SqlCommand(queryString, connection);
command.ExecuteNonQuery(); // The most expensive operation
sb.Clear();
}
}
connection.Close();
}