zoukankan      html  css  js  c++  java
  • 数据库插入速度比较

    一、使用EF插入,用时8135ms。

     1         Stopwatch stopWatch = new Stopwatch();
     2             stopWatch.Start();
     3             using (var content = new HardwareContext())
     4             {
     5                 for(int i = 20; i < 1000; i++)
     6                 {
     7                     HardwareLimited hardwareLimited = new HardwareLimited
     8                     {
     9                         id = i,
    10                         DataId = "00000000000502",
    11                         IsEnable = true
    12                     };
    13                     content.HardwareLimiteds.Add(hardwareLimited);
    14                 }
    15                 content.SaveChanges();
    16             }
    17             stopWatch.Stop();
    18             MessageBox.Show(stopWatch.ElapsedMilliseconds.ToString());

    二、直接插入,用时1.745ms。

     1             string sql = "";
     2             Stopwatch stopWatch = new Stopwatch();
     3             stopWatch.Start();
     4             for (int i = 20; i < 1000; i++)
     5             {
     6                 sql += "  insert into  [ProjectTS].[dbo].[MSHardwareLimited] (id,DataId,IsEnable)values('"+i.ToString()+ "','00000000000502',1) ";
     7             }
     8             DBHelp.ExecuteSql(sql);
     9             stopWatch.Stop();
    10             MessageBox.Show(stopWatch.ElapsedMilliseconds.ToString());

    三、使用SqlBulkCopy插入,用时244ms。

     1          DataTable dataTable = new DataTable();
     2             dataTable.Columns.Add("id", typeof(int));
     3             dataTable.Columns.Add("DataId", typeof(string));
     4             dataTable.Columns.Add("IsEnable", typeof(bool));
     5             for (int i = 20; i < 1000; i++)
     6             {
     7                 DataRow dataRow = dataTable.NewRow();
     8                 dataRow["id"] = i;
     9                 dataRow["DataId"] = "00000000000502";
    10                 dataRow["IsEnable"] = true;
    11                 dataTable.Rows.Add(dataRow);
    12             }
    13             Stopwatch stopWatch = new Stopwatch();
    14             stopWatch.Start();
    15             using (SqlConnection conn = new SqlConnection(DBHelp.connectString))
    16             {
    17                 conn.Open();
    18                 using (SqlBulkCopy bulk = new SqlBulkCopy(DBHelp.connectString))
    19                 {
    20                     bulk.BatchSize = 10000;
    21                     bulk.DestinationTableName = "[ProjectTS].[dbo].[MSHardwareLimited]";
    22                     bulk.ColumnMappings.Add("id", "id");
    23                     bulk.ColumnMappings.Add("DataId", "DataId");
    24                     bulk.ColumnMappings.Add("IsEnable", "IsEnable");
    25                     bulk.WriteToServer(dataTable);
    26                 }
    27                 conn.Close();
    28                 conn.Dispose();
    29             }
    30             stopWatch.Stop();
    31             MessageBox.Show(stopWatch.ElapsedMilliseconds.ToString());
  • 相关阅读:
    pyspider 在ubuntu上安装失败怎么搞?
    怎么在项目中使用前端包管理器bower和构建工具gulp
    Asp.net mvc 实时生成缩率图到硬盘
    如果转载优酷、土豆视频等,怎么让视频自适应宽度?
    C语言II博客作业04
    C语言I博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    The first essay
  • 原文地址:https://www.cnblogs.com/yuekong2010/p/6707925.html
Copyright © 2011-2022 走看看