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秒钟左右。

  • 相关阅读:
    akka并发编程练习
    使用selenium和chromedriver组合爬虫时,如果爬取的页面数量巨多,会出现占用内存逐渐增大知道程序崩溃的情况
    网易2017秋招编程题集合_以下代码全部来自牛客网
    牛客网_运行问题
    json和xml之间转换的好文
    Eclipse 启动时闪退问题解决方案
    关于opencv的文件配置详细内容
    第一个opencv声称图片_以及遇到的问题集锦
    好文收藏_关于find_first_not_of函数
    好文收藏readtxt_cpp
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1848906.html
Copyright © 2011-2022 走看看