很简单的例子:
假设你每次执行的SQL语句是 
string sql="Insert xxx(a) values('a')";
exec(sql);你不是每次都去执行这个SQL,而是把很多这样的SQL拼成一个长SQL,每个小SQL之间用";"分隔。
类似 string sql="insert xxx(a) values('a');insert xxx(b) values('b');";
exec(sql);
可以拼接1000-2000个一次执行
为了更高性能,可以在sql开始前加一个 begin transation,最后再 commit;

解决方案 »

  1.   


             while (true)//如果有数据接收到就执行下面插入数据库操作
                {
                 SqlConnection connection = new SqlConnection("Data Source=192.168.114.129;Initial Catalog=syslog;User ID=sa;Password=123456");/连接数据库
                 connection.Open();
                 SqlCommand command = new SqlCommand("insert into qqlogin ([date],[data]) values ('" + tmpdate + "','" + tmp + "')", connection);//插入这一条数据记录;
                 command.ExecuteNonQuery();
                 connection.Close();
                }请3楼和4楼老师帮忙改写一下我的这段代码吧
      

  2.   

                 SqlConnection connection = new SqlConnection("Data Source=192.168.114.129;Initial Catalog=syslog;User ID=sa;Password=123456");/连接数据库
                 connection.Open();
             while (true)//如果有数据接收到就执行下面插入数据库操作
                {
                 SqlCommand command = new SqlCommand("insert into qqlogin ([date],[data]) values ('" + tmpdate + "','" + tmp + "')", connection);//插入这一条数据记录;
                 command.ExecuteNonQuery();
                }
                 connection.Close();
      

  3.   

    最简单的来说 我觉得可以用list存储数据 到一定程度插入数据库 然后清空不就完事了?
      

  4.   

    你可以根据数据量来判断什么时候开启一个线程向数据库提交一次。
    不知道怎么用 SqlBulkCopy 
    但是我用线程将采集的数据存入buffer,然后存到50条数据批量插入数据库
    insert into qqlogin ([date],[data]) values (1,2),(3,4),(5,6)......
    一次插入50条,情况好多了,不在死机,但是貌似有点卡顿
    数据库没有报错,sql2008,不知道一次插入100条怎么样,正在试验
      

  5.   

    SqlBulkCopy 是最快的了。
    批量插入。
      

  6.   

    你可以根据数据量来判断什么时候开启一个线程向数据库提交一次。
    不知道怎么用 SqlBulkCopy 
    但是我用线程将采集的数据存入buffer,然后存到50条数据批量插入数据库
    insert into qqlogin ([date],[data]) values (1,2),(3,4),(5,6)......
    一次插入50条,情况好多了,不在死机,但是貌似有点卡顿
    数据库没有报错,sql2008,不知道一次插入100条怎么样,正在试验感觉你这个最好是用SqlBulkCopy,至少你可以隔一段时间提交数据库,而且插入数据库快!不然你不停的往表里面写,那读的时候怎么办,数据库的负载太大了!
      

  7.   

                using (SqlBulkCopy bulkCopy = new SqlBulkCopy("ConnectionString"))
                {
                    bulkCopy.DestinationTableName = "TableName";
                    bulkCopy.WriteToServer(Table);
                }