zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    css盒子模型之内边距padding及简写
    css盒子模型之宽度和高度
    windows 组策略
    windows 快捷键
    cmd 命令快捷键
    django 远程访问
    django 部署在 apache2 上面
    国内常用开源镜像站
    ubuntu1804自带官方源
    ubuntu1604 apt华为国内源
  • 原文地址:https://www.cnblogs.com/LoveAndPeace/p/10153897.html
Copyright © 2011-2022 走看看