• sql server 大批数据插入时,时间过长的问题


     private const string con = "server=192.168.30.36;database=test;user=sa;pwd=123456";
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("id");
                dt.Columns.Add("Name");
                dt.Columns.Add("index1");
                for (int i = 10000; i < 100000; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[1] = "测试"+i;
                    dr[2] = i;
                    dt.Rows.Add(dr);
                }
                batchAdd(dt, "wx");
                string[] arr={};
            }
            public static void batchAdd(DataTable dt,string tableName)
            {
                using (SqlBulkCopy sbc =new SqlBulkCopy(con))
                {
                    sbc.BulkCopyTimeout = 10000;
                    sbc.BatchSize = 9000;
                    sbc.DestinationTableName = tableName;
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        sbc.ColumnMappings.Add(dt.Columns[i].ColumnName,i);
                    }
                    sbc.WriteToServer(dt);
                }
            }
    

      

    SqlBulkCopy 这是在system.data下的一个类库, 用于大批量数据插入。  
    经过测试 插入10000条的数据大概是1s; 一百万的数据大概在4-5s;

                              end
  • 相关阅读:
    python数字
    python字符串方法
    python操作符与流程控制
    网络基础和python(二)
    网络基础和python
    Ubuntu源更新
    make和makefile介绍
    JavaScript
    redis mac安装配置
    网络编程之socket(TCP,UDP)
  • 原文地址:https://www.cnblogs.com/LoveAndPeace/p/10153897.html
Copyright © 2020-2023  润新知