zoukankan      html  css  js  c++  java
  • asp.net 使用SqlBulkCopy极速插入数据到 SQL Server转一下说不定哪天用的到

    按这个来算,我们那个发水票的时间就会由 10分钟-->20秒,这可太神奇了。
    于是乎,下demo,测试,改成自己一般使用的方法测试,NND,还真可以说是极速。
    在此贴上我的Demo:SqlBulkCopy.rar
    复制代码 代码如下:
    using System;
    using System.Diagnostics;
    using System.Data;
    using System.Data.SqlClient;
    using Microsoft.ApplicationBlocks.Data;
    namespace ConsoleAppInsertTest
    {
    class Program
    {
    static int count = 1000000; //插入的条数
    static void Main(string[] args)
    {
    long sqlBulkCopyInsertRunTime = SqlBulkCopyInsert();
    Console.WriteLine(string.Format("使用SqlBulkCopy插入{1}条数据所用的时间是{0}毫秒", sqlBulkCopyInsertRunTime, count));
    long commonInsertRunTime = CommonInsert();
    Console.WriteLine(string.Format("普通方式插入{1}条数据所用的时间是{0}毫秒", commonInsertRunTime, count));
    Console.ReadKey();
    }
    /// <summary>
    /// 使用普通插入数据
    /// </summary>
    /// <returns></returns> 一起jquery,17jquery
    private static long CommonInsert()
    {
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    for (int i = 0; i < count; i++)
    {
    SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnection, CommandType.Text, "insert into passport(PassportKey) values('" + Guid.NewGuid() + "')");
    }
    stopwatch.Stop();
    return stopwatch.ElapsedMilliseconds;
    }
    /// <summary>
    /// 使用SqlBulkCopy方式插入数据
    /// </summary>
    /// <returns></returns>
    private static long SqlBulkCopyInsert()
    {
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    DataTable dataTable = GetTableSchema();
    for (int i = 0; i < count; i++)
    {
    DataRow dataRow = dataTable.NewRow();
    dataRow[2] = Guid.NewGuid();
    dataTable.Rows.Add(dataRow);
    }
    //Console.WriteLine(stopwatch.ElapsedMilliseconds);//初始化数据时间
    SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(SqlHelper.SqlConnection);
    sqlBulkCopy.DestinationTableName = "Passport";
    if (dataTable != null && dataTable.Rows.Count != 0)

    17jquery.com


    {
    sqlBulkCopy.WriteToServer(dataTable);
    }
    sqlBulkCopy.Close();
    stopwatch.Stop();
    return stopwatch.ElapsedMilliseconds;
    }
    private static DataTable GetTableSchema()
    {
    return SqlHelper.ExecuteDataset(SqlHelper.SqlConnection, CommandType.Text, "select * from Passport where 1=2").Tables[0];
    }
    }
    }

  • 相关阅读:
    Gantt/BTS 生产计划电子看板甘特图
    C# DotNetty TCP对接 松下扣料机
    Vue 和 Zebra 打印机连接直接打印条码
    JavaFx 通信ITC数字广播 SAPI 使用NeoSpeech Liang包生成语音
    Docker RabbitMQ 镜像集群
    游戏匹配实现
    Metro 界面设计案例
    JavaFX 集成 Sqlite 和 Hibernate 开发爬虫应用
    Discuz论坛 自动加好友留言程序
    JavaFX Metro UI 和 开发库
  • 原文地址:https://www.cnblogs.com/meigan/p/1992454.html
Copyright © 2011-2022 走看看