SqlServer优化之批量插入(SqlBulkCopy、表值参数)

本文介绍了SqlBulkCopy和表值参数两种用于SqlServer批量插入的方法。SqlBulkCopy利用BCP协议,每批大约处理800条记录;表值参数则允许将表作为参数传递。在大量数据插入时,SqlBulkCopy表现出了最佳性能。
摘要由CSDN通过智能技术生成

之前做项目需要用到数据库的批量插入,于是就研究了一下,现在做个总结。

创建了一个用来测试的Student表:

CREATE TABLE [dbo].[Student](
	[ID] [int] PRIMARY KEY NOT NULL,
	[Num] [varchar](10) NULL,
	[Name] [nvarchar](64) NULL,
	[Age] [int] NULL
	)


一、SqlBulkCopy类:使用数据库BCP协议进行数据的批量复制,每一批的数量大约800条。

 /// <summary>
        /// 批量插入SqlBulkCopy
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="tableName">表名</param>
        public static void BatchInsertBySqlBulkCopy(DataTable dt, string tableName)
        {
            using (SqlBulkCopy sbc = new SqlBulkCopy(connString))
            {
                sbc.BatchSize = dt.Rows.Count;
                sbc.BulkCopyTimeout = 10;
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值