zoukankan      html  css  js  c++  java
  • sqlserver 2005 快速插入数据

    两种方法,直接上代码
    方法一:

    文件字段使用逗号分隔,行使用“|”分隔。
    SqlProvider.ExecuteNonQuery("BULK INSERT Customer FROM 'c:\\100w.txt' WITH (FIELDTERMINATOR = ',',ROWTERMINATOR='|',BATCHSIZE = 100000)");
    方法二:
    构建100000数据:
    private void GetData()
            {
                try
                {
                    dt = new DataTable();
                    dt.Columns.Add("id", typeof(int));
                    dt.Columns.Add("name", typeof(string));
                    dt.Columns.Add("email", typeof(string));
                    dt.Columns.Add("address", typeof(string));
                    dt.Columns.Add("phone", typeof(string));
                    for (int i = 0; i < 1000000; i++)
                    {
                        DataRow dr = dt.NewRow();
                        dr["id"] = i;
                        dr["name"] = "name_" + i;
                        dr["email"] = "email_" + i;
                        dr["address"] = "address_" + i;
                        dr["phone"] = "phone_" + i;
                        dt.Rows.Add(dr);
                    }
                }
                finally
                {
                }
            }

    protected void F1()
            {
                SqlConnection conn = new SqlConnection(str);
                conn.Open();
                System.Diagnostics.Stopwatch timer = new Stopwatch();
                using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))
                {
                    sqlBC.BatchSize = 100000;
                    sqlBC.BulkCopyTimeout = 60;
                    sqlBC.Destinati;
                    sqlBC.ColumnMappings.Add("id", "customerId");
                    sqlBC.ColumnMappings.Add("name", "name");
                    sqlBC.ColumnMappings.Add("email", "email");
                    sqlBC.ColumnMappings.Add("address", "address");
                    sqlBC.ColumnMappings.Add("phone", "phone");
                    timer.Start();
                    sqlBC.WriteToServer(dt);
                    timer.Stop();
                }
                conn.Dispose();
                MessageBox.Show(timer.ElapsedMilliseconds.ToString());
                
            }
    第二种方式插入100万数据,普通的pc 10秒钟左右。

  • 相关阅读:
    Lucence.Net 2.9.3 日期范围搜索
    Frida 使用
    ubuntu+php5fpm 下安装 memcached PHP扩展
    cmd下使用telnet连接到memcached服务器操作
    解决sendmail卡死和主机名为bogon的问题
    【转载】Win7文件关联 文件与程序“联姻”
    [转载]Ubuntu下Samba服务器的最简配置
    Windows XP快速关机
    [转载]Git安装以及使用Git 管理个人文档
    GitHub push时提示“fatal: The remote end hung up unexpectedly”
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1848906.html
Copyright © 2011-2022 走看看