开发者社区> 问答> 正文

现在批量插入最多200条 如果想一次性批量插入更多数据的话 是不是要以多线程的方式?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
初商 2019-08-27 19:58:45 1010 0
1 条回答
写回答
取消 提交回答
  • 这几百个数据我组合成上述一条语句,20多个账户多个采集点我一共生成上述语句300--800多条,每条的数据项300-500个,所以每次插入的数据共计10000--50000条。 我把每条insert语句都保存在一个SQLStringList之中,又 在网上找点资料,采用了事务处理方式,本来我的事务方式是所有sql语句放在一个事务里,但有热心朋友告知“每当执行1000条DBCommand就提交(Commit)事务,然后再次开启事务,这样比较好。把过多的命令放在一个事务中,一旦超过物理内存分配限制,你的程序会变得很慢很慢。” 所以我后来修改了一下,每500条语句重启一次事务。c#代码如下: /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>mysql数据库        /// <param name="SQLStringList">多条SQL语句</param>        public static void ExecuteSqlTran(List<string> SQLStringList)        {            using (MySqlConnection conn = new MySqlConnection(MySqlHelper.ConnStr))            {                conn.Open();                MySqlCommand cmd = new MySqlCommand();                cmd.Connection = conn;                MySqlTransaction tx = conn.BeginTransaction();                cmd.Transaction = tx;                try                {                    for (int n = 0; n < SQLStringList.Count; n++)                    {                        string strsql = SQLStringList[n].ToString();                        if (strsql.Trim().Length > 1)                        {                            cmd.CommandText = strsql;                            cmd.ExecuteNonQuery();                        }                       //后来加上的                       if (n > 0 && (n % 500 == 0 || n == SQLStringList.Count - 1))                        {                            tx.Commit();                            tx = conn.BeginTransaction();                        }                    }                    //tx.Commit();//原来一次性提交                }                catch (System.Data.SqlClient.SqlException E)                {                    tx.Rollback();                    throw new Exception(E.Message);                }            }        }

    2019-09-29 17:45:08
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
事务、全局索引、透明分布式 立即下载
低代码开发师(初级)实战教程 立即下载