sql server 大批数据插入时,时间过长的问题
2024-10-18 06:37:11
private const string con = "server=192.168.30.36;database=test;user=sa;pwd=123456";
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("Name");
dt.Columns.Add("index1");
for (int i = 10000; i < 100000; i++)
{
DataRow dr = dt.NewRow();
dr[1] = "测试"+i;
dr[2] = i;
dt.Rows.Add(dr);
}
batchAdd(dt, "wx");
string[] arr={};
}
public static void batchAdd(DataTable dt,string tableName)
{
using (SqlBulkCopy sbc =new SqlBulkCopy(con))
{
sbc.BulkCopyTimeout = 10000;
sbc.BatchSize = 9000;
sbc.DestinationTableName = tableName;
for (int i = 0; i < dt.Columns.Count; i++)
{
sbc.ColumnMappings.Add(dt.Columns[i].ColumnName,i);
}
sbc.WriteToServer(dt);
}
}
SqlBulkCopy 这是在system.data下的一个类库, 用于大批量数据插入。
经过测试 插入10000条的数据大概是1s; 一百万的数据大概在4-5s; end
最新文章
- java学习之接口、多态和内部类
- Oracle笔记二
- 转载:jQuery实现返回顶部功能
- ahjesus自定义隐式转换和显示转换
- leetcode 100. Same Tree
- 开源论坛MvcForum推荐
- OpenCV_轮廓的查找、表达、绘制、特性及匹配
- 命名空间 和 class_exist() 问题
- Linux Shell编程(23)——文本处理命令
- ThreadLocal 线程本地变量 及 源码分析
- tensorflow核心概念和原理介绍
- 【学习笔记Part 2● MySQL】
- 使用sftp操作文件并添加事务管理
- 与大V一对一沟通 欢迎迷茫的你和优秀的你
- JS--dom对象:document object model文档对象模型
- IIS 集成模式 导致 AjaxPro 无法正常运行
- vue.js 使用时间组件 日期少一天的问题
- win10升级至专业版
- 《Python3网络爬虫开发实战》
- Hadoop学习笔记之二:NameNode