解决方案 »

  1.   

    1、禁用索引
    2、BCP或者其他工具也可以,基本上性能不会相差非常巨大。
    3、导入后启用索引
      

  2.   

    直接通过sql语句来插入数据把,比如bulk insert。下面的帖子里,插入800w条数据,只要1分钟:你也可以看看这个帖子:请教BULK INSERT时,如何插入额外的列
    http://bbs.csdn.net/topics/390642912?page=1#post-396087204
      

  3.   

    数据是web页面上传递的,表单里有短信内容(可以很长)什么的,然后就放到数据库里。
      

  4.   

    bcp
      

  5.   

    插入的表本身就是队列表,现在也是1000条一插。
    刚刚可能是sql数据库缓存了,100条/s,现在有2000-4000条左右.
    还有米有更高效的方法?using (SqlBulkCopy sb = new SqlBulkCopy(constr, SqlBulkCopyOptions.FireTriggers))
    {
        sb.DestinationTableName = "tSMSContent";
        Stopwatch sw = new Stopwatch();
        sw.Start();
        while (flag)
        {
            for (int i = 0; i < 1000; i++)
            {
                DataRow dr = dt.NewRow();
                dr["SMSContent"] = Guid.NewGuid();//模拟短信内容
                dr["CreateTime"] = DateTime.Now;
                dt.Rows.Add(dr);
            }
            index++;
            sb.WriteToServer(dt);
            dt.Rows.Clear();
            label1.Invoke((MethodInvoker)(() =>
            {
                label1.Text = (index * 1000 * 1000 / sw.ElapsedMilliseconds).ToString();                                                       
            }));
        }
    }
      

  6.   


    呵呵,你的这种实现方式,已经很不错了,批量操作,性能已经很快了。上面提到的bcp不太适合你这种情况,bcp适合通过文件的方式,导入,虽然bcp更快。