SQL批量新增数据

      自上周完成任务后还没安排新的任务,烦(qie)躁(xi)。
      今天打算安排两篇博客,这是第一篇,另一个是由这个再做的索引案例

一:前期准备
1、使用的还是之前的数据库,采用CopySQLTableData表、HierarchyDepartment表 :
在这里插入图片描述
2、我需要对表CopySQLTableData进行批量新增

二:实践

1、先测试新增9条,就执行速度来说,感觉上过了3s,也就是1秒3条,(这个比例可以去具体理解)这里我们也打开了两个按钮,后边看下具体情况
咱可爱的七仔大军准备出击,加上永远18的我们在这里插入图片描述

在这里插入图片描述

--批量数据
--循环添加数据
declare @i int --声明一个变量
set @i=1     --给变量赋值(初始化)
while @i<10   --循环插入
begin
	insert into CopySQLTableData ([Name],Sex,Age,CreationTime,Remark)
	values ('长江'+convert(varchar,@i)+'号',0,18,GETDATE(),'SQL批量新增-第一轮');
set @i=@i+1
end

GO

2、先看下执行计划,这里9条insert语句平摊了开销,这很容易理解
在这里插入图片描述
3、我们主要看的是这I/O、CPU的开销
在这里插入图片描述
4、再看下另一个 客户端统计信息。这我们需要知道并容易理解的是这三个,其他无意义,也有不懂的…,18呢是insert的9条加@i的赋值;9呢就是insert的影响;再下边的19我估计是18+9+@i初始化;最后的3,应是三次握手(有误请指正![一本正经.jpg])
另外,这个查询试验1的表头,表示第一次执行的数据,假如我把之前的代码再执行一次,会有查询试验2,数据上也有对比,下边再看吧
在这里插入图片描述
5、闲话也聊完了,看下结果吧
在这里插入图片描述
三:测试完,进行正式的大批量循环insert,这次我们添加百万
在这里插入图片描述
1、执行了42分钟,我还是等不下了…我都要困了
在这里插入图片描述
这执行的,CPU占比都到16-17了(I7-9750H,6核心12线程),停止后只有0.1-0.3的占比…这等数据量的做法平常还是不要随便弄了,(期间我切换到数据库都有十几秒的卡顿)
让我们看下这次执行insert了多少数据吧

…有点小奔溃,才1.5k???有没有搞错(平均一秒2条的速度了…[泪奔.gif])

2、寻找问题
看下执行的客户端
在这里插入图片描述
蓝色的是执行COUNT函数的,红色的就是我们新增的数据了,还是是在不敢相信才这么点,I/O效率太低了,得安排个高效率的做法
3、看下数据添加进入的时间
在这里插入图片描述
可以看到,刚开始的速度还是可以的,一秒insert了10来条数据,但是18秒又少了
在这里插入图片描述
以至于到后期的一分钟不如前2秒insert的条数,理论不应该这样啊,
4、是数据库限制了什么东西了么??
在这里插入图片描述
在这里插入图片描述
也不知道是不是这一块的问题,,有大佬路过的帮忙看看[拜托拜托][拜托拜托]

四、寻找新方法
待续…意外的问题,我得去解决下,再补充了[狗头保命]
索引的博客也延迟到百万数据正式新增进去后再写了

加油ヾ(◍°∇°◍)ノ゙

在这里插入图片描述

这是一个失败的方法,但是一篇成功的博客,让我认识到了理论与实践的差距
实践是检验真理的唯一标准  !!!!

补充:
后续来了:优化1

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL函数是指在SQL语句中可以执行的可重用的代码块。SQL函数可以用于从数据库中获取、加工、处理和转换数据。在SQL语句中,函数可以被当作一个值使用,形参是输入项,返回值可以是单个值、表格或者其他类型的结果集。 而批量新增数据则是指在一次操作中新增多条数据进入数据库中,从而减少单条数据添加的时间和提高效率。在实际业务中,需要对大量数据进行操作,单独添加一条数据的速度太慢,容易出错。所以,批量新增数据能够快速地将一组数据添加数据库中。 如果需要将多行数据添加数据库中,SQL函数中可以使用INSERT INTO语句加上VALUES将所有数据一次性添加数据库中。例如,下面的SQL语句用批量新增数据的方法向一个学生表中插入多行数据: ``` INSERT INTO Students (Name, Age, Gender, Address) VALUES ('Tina', 20, 'Female', 'Beijing'), ('Mike', 22, 'Male', 'Shanghai'), ('Linda', 21, 'Female', 'Guangzhou'), ('Jack', 19, 'Male', 'Chengdu') ``` 这个SQL语句可以将四个学生的信息一次性添加到学生表中,从而减少数据库操作的次数,提高效率。这种方式适用于需要一次性新增多条数据的情况,对于较小规模的数据插入操作,可能没有太大的提升。需要根据实际情况选择是否使用此方式。 总之,SQL函数与批量新增数据数据库操作中两个常用的技术。SQL函数可以快速地从数据库中获取、处理和转换数据,而批量新增数据能够减少单条数据添加的时间和提高效率。在实际开发中,需要根据不同的业务需求选择合适的方式进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值