您当前的位置:首页 > 电脑百科 > 数据库 > SQL Server

数据库批量插入数据方法

时间:2023-10-17 11:34:46  来源:  作者:

SQL Server 批量插入数据常用方法:

一、普通的Insert插入

二、拼接BatchInsert插入

三、SqlBulkCopy插入

 

以上3种方法插入数据的速度比较:(ms:毫秒,1000 毫秒 = 1秒)

由于电脑硬件情况不一样,以下数据仅供参考,不一样的电脑会有所偏差,但不影响比较,因为在一样的硬件环境下。

1、以一次插入1万条数据看:

采用Insert 需要 1501.322ms,

采用BatchInsert 需要850.6261ms,

采用SqlBulkCopy需要30.4119ms

2、以一次插入10万条数据看:

采用Insert 需要 13875.3234ms,

采用BatchInsert 需要8278.4052ms,

采用SqlBulkCopy需要314.7301ms。

通过比较采用SqlBulkCopy是最快的一种方法,特别适合用于大批量数据的插入,比如一次插入上百万条数据等情况。在C#开发语言中有一个SqlBulkCopy 类,命名空间:System.Data.SqlClient。

如何在 C# 中使用 SqlBulkCopy DEMO:

using System;

using System.Data;

using System.Data.SqlClient;

namespace SqlBulkCopyDemo

{

/*

-- 测试表创建

IF OBJECT_ID('t') IS NOT NULL

DROP TABLE t

GO

CREATE TABLE t(

id INT PRIMARY KEY,

[name] NVARCHAR(20) NOT NULL

)

GO

*/

class Program

{

static void MAIn(string[] args)

{

//连接数据库

string connString = "data source=(local);initial catalog=test;Integrated Security=True";

string sql = "select * from t where 1=0";

DataTable dt = null;

using (SqlConnection conn = new SqlConnection(connString))

{

conn.Open();

SqlCommand cmd = new SqlCommand(sql, conn);

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

dt = new DataTable();

adapter.Fill(dt);

}

for (int i = 1; i <= 10; i++) {

DataRow dr = dt.NewRow();

dr["id"] = i;

dr["name"] = "n" + i.ToString();

dt.Rows.Add(dr);

}

//dt已有数据

//给表t批量插入数据

using(SqlConnection conn = new SqlConnection(connString))

{

conn.Open();

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))

{

 

bulkCopy.DestinationTableName = "t"; //需要插入数据的表名

bulkCopy.WriteToServer(dt); //将DataTable中的数据写入表中

}

}

Console.Read();

}

}

}



Tags:数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  Search: 数据库  点击:(4)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28  Search: 数据库  点击:(13)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  Search: 数据库  点击:(12)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12  Search: 数据库  点击:(26)  评论:(0)  加入收藏
让数据库和缓存数据保持一致的三种策略
如何保证缓存和数据库的一致性,这算得上是个老生常谈的话题啦,看到好多技术新人在写更新缓存数据代码,采用了非常复杂甚至“诡异”的方案,甚为不解。一、背景目前随着缓存架构方...【详细内容】
2024-02-20  Search: 数据库  点击:(35)  评论:(0)  加入收藏
MySQL数据库如何生成分组排序的序号
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...【详细内容】
2024-01-30  Search: 数据库  点击:(53)  评论:(0)  加入收藏
一篇文章,彻底理解数据库操作语言:DDL、DML、DCL、TCL
本篇文章以具体的SQL语句讲解了数据库SQL语言四大分类(数据定义语言DDL,数据操作语言DML,数据查询语言DQL,数据控制语言DCL),同时也介绍了事务控制语言TCL。最近与开发和运维讨论...【详细内容】
2024-01-30  Search: 数据库  点击:(41)  评论:(0)  加入收藏
一文读懂:什么是数据库,它到底有啥用?
提到数据库,可能很多人会很陌生。但据库其实已经渗入我们生活的方方面面,像网上购物、扫码点餐、抢红包等等应用背后都离不开数据库的支持。可以说数据库是支撑各类应用软件运...【详细内容】
2024-01-25  Search: 数据库  点击:(42)  评论:(0)  加入收藏
oracle数据库基础学习
在当今数字化时代,数据库已成为企业运营的关键要素。而Oracle数据库,作为全球领先的企业级数据库管理系统,更是备受推崇。本文将带您深入了解Oracle数据库的基础知识,帮助您从零...【详细内容】
2024-01-20  Search: 数据库  点击:(86)  评论:(0)  加入收藏
一个流行的支持超多数据库的ORM库
Sequelize 是一个流行的 Node.js ORM(对象关系映射)库,用于在 Node.js 中操作关系型数据库。它支持多种数据库系统,如 PostgreSQL、MySQL、SQLite 和 MSSQL,并提供了简单易用的 A...【详细内容】
2024-01-15  Search: 数据库  点击:(75)  评论:(0)  加入收藏
▌简易百科推荐
SQL Server 百万数据查询优化技巧三十则
互联网时代的进程越走越深,使用MySQL的人也越来越多,关于MySQL的数据库优化指南很多,而关于SQL SERVER的T-SQL优化指南看上去比较少,近期有学习SQLSERVER的同学问到SQL SERVER数...【详细内容】
2023-11-28  数据库干货铺  微信公众号  Tags:SQL Server   点击:(337)  评论:(0)  加入收藏
如何解决SQL Server数据库备份过程中检测到的日志损坏问题
译者 | 李睿日志损坏问题通常发生在对事务日志进行备份的时候。其错误是这样描述的:“消息26019,级别16,状态1,第1行BACKUP在数据库日志中检测到损坏。有关详细信息,请查看错误日...【详细内容】
2023-11-08    51CTO  Tags:SQL Server   点击:(289)  评论:(0)  加入收藏
聊聊SQL中的排名问题
今天给大家介绍一下SQL Server排名中经常用到的ROW_NUMBER(),RANK(),DENSE_RANK(),NTILE()这四个好兄弟。 我们先创建一个测试数据表ScoresWITH t AS(SELECT 1 StuID,70 ScoreU...【详细内容】
2023-10-26  SQL数据库开发  微信公众号  Tags:SQL   点击:(176)  评论:(0)  加入收藏
数据库批量插入数据方法
SQL Server 批量插入数据常用方法:一、普通的Insert插入二、拼接BatchInsert插入三、SqlBulkCopy插入 以上3种方法插入数据的速度比较:(ms:毫秒,1000 毫秒 = 1秒)由于电脑硬件情况...【详细内容】
2023-10-17      Tags:数据库   点击:(252)  评论:(0)  加入收藏
如何在 SQL Server 中备份和恢复数据库
在SQL Server中,数据库可以存储在不同的文件和文件组中。如果您的数据库较小(100 MB 或更少),则无需过多担心文件和文件组。但如果您有一个大型数据库(数 GB 或 TB),将数据分离到不...【详细内容】
2023-09-05  祺印说信安  微信公众号  Tags:SQL Server   点击:(267)  评论:(0)  加入收藏
linux上SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-24    雪竹频道  Tags:SQL Server   点击:(306)  评论:(0)  加入收藏
Linux 上 SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-21  雪竹聊技术  今日头条  Tags:SQL Server   点击:(124)  评论:(0)  加入收藏
python如何操作SQL Server数据库?
当使用Python与SQL Server进行交互时,可以使用不同的库和模块。以下是25个示例代码,用于演示如何使用Python与SQL Server进行连接、查询、插入、更新和删除等操作:使用pyodbc库...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(296)  评论:(0)  加入收藏
SQL Server关系数据库在Linux系统上安装及配置
SQL Server是由Microsoft开发的关系型数据库管理系统(RDBMS)。它是一种可靠、安全且高性能的数据库解决方案,用于存储、管理和处理大量结构化数据。SQL Server支持标准的SQL查...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(242)  评论:(0)  加入收藏
SQL Server数据库常见操作及命令
创建数据库:CREATE DATABASE database_name;删除数据库:DROP DATABASE database_name;创建表:CREATE TABLE table_name ( column1 datatype, column2 datatype, ...);删除...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(229)  评论:(0)  加入收藏
站内最新
站内热门
站内头条