使用C#将1亿行导入MS SQL

时间:2017-04-18 08:23:35

标签: c# sql sql-server

我正在尝试制作一项服务,有时会将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();
}

0 个答案:

没有答案