SQL server,Oracle循环插入百万数据
SQL server,Oracle循环插入百万数据
压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本
declare @maxSum int,
@lid nvarchar(64), -- 'lid'为表id
@cid int,
@userid nvarchar(64),
@oper_time nvarchar(26),
@oper_type nvarchar(10),
@oper_host nvarchar(64),
@permission nvarchar(100),
@status nvarchar(10),
@detalls nvarchar(max),
@version int
set @maxSum=1
set @cid='1'
set @userid='1'
set @oper_time='2020-10-26 12:15:07.000761'
set @oper_type='7'
set @oper_host='127.0.0.1'
set @permission='system'
set @status='0'
set @detalls='{"msg":"Login for User:admin.","logBeans":null}'
set @version='0'
begin tran
while @maxSum<200000
begin
set @lid='LID'+convert(nvarchar,@maxSum) -- id加'LID'前缀方便识别
insert into T_AT_LOG (LID,CID,USERID,OPER_TIME,OPER_TYPE,OPER_HOST,PERMISSION,STATUS,DETAILS,VERSION)
values(@lid,@cid,@userid,@oper_time,@oper_type,@oper_host,@permission,@status,@detalls,@version)
set @maxSum=@maxSum+1
end
commit
数据要分批Commit,这里我是单次20万笔,数据库是无法支撑单次几百万笔Commit的。
单笔耗时28秒
这脚本效率不是很满意,有更高效率的脚本欢迎在评论区分享
DECLARE
a number(30) := 0;
BEGIN
for i in 1 .. 200000 loop
INSERT INTO T_AT_LOG(LID,CID,USERID,OPER_TIME,OPER_TYPE,OPER_HOST,PERMISSION,STATUS,DETAILS,VERSION)
VALUES(i,'1','1','2020-10-13 10:25:38.000176','8','127.0.0.1','system','0','{"msg":"Login for User:admin.","logBeans":null}','0');
end loop;
commit;
END;
这里一样是分批Commit
单笔耗时33秒
SQL server,Oracle循环插入百万数据相关教程
从实践的角度来回顾一下SQL注入
从实践的角度来回顾一下SQL注入 题记: 长江三角洲是每一粒细少堆叠起来的 【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 【x2】各种系列的视频教程 免费开源 关注 你不会迷路 【x3】系列文章 百万 Demo 随时 复制粘贴 使用 1 什么是 sql 注入 ??
MyBatis打工人——sql配置文件详解
MyBatis打工人——sql配置文件详解 这一篇,老多代码了,我的天。我用了经典的emp表和dept表做演示。加油!打工人。(看到隔壁的铁人为了调休奋战了36小时没睡,我陷入入了沉思) Mybatis SQL映射 在SQL映射文件中,有需要的顶级元素标签:--cache – 该命名
python爬虫:爬取动态网页并将信息存入MySQL数据库
python爬虫:爬取动态网页并将信息存入MySQL数据库 目标网站 http://www.neeq.com.cn/disclosure/supervise.html 爬取网页该部分内容 网页分析 查看网页源代码发现没有表格部分内容,对网页请求进行分析 F12–network----xhr 接下来分析数据来源,切换到Heade
【MySQL】索引使用详解(联合索引,覆盖索引,ICP)及创建的几点
【MySQL】索引使用详解(联合索引,覆盖索引,ICP)及创建的几点建议 准备工作,下面的演示都是基于user_innodb表: DROP TABLE IF EXISTS `user_innodb`;CREATE TABLE `user_innodb` ( `id` bigint(64) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NU
技术实践丨PostgreSQL开启Huge Page场景分析
技术实践丨PostgreSQL开启Huge Page场景分析 PostgreSQL用户经常发现,服务端在连接数较大的情况下,会出现系统内存消耗过多的情况,严重者可能会造成OOM。但是服务端配置的共享内存(shared_buffers,wal_buffers等)是一定的,为什么内存会持续增加呢?这就
SqlServer笔记5
SqlServer笔记5 目录 1.创建视图 2.注意事项 3.例题 视图名必须遵循标识符命名规则,且对每类用户视图名必须是唯一的,即对不同用户定义相同的视图,也必须使用不同的名字。 SELECT查询子句的查询内容就是视图的内容。SELECT语句通常不允许含有ORDER BY子句和
Java知识点之Java Mysql连接
Java知识点之Java Mysql连接 点击上面 免费订阅本账号! 本公众号主要推送javaweb开发相关技术,基础知识点,同时会深入剖析复杂的问题,分享一些优秀的框架,大型项目经验,当今最流行的Javaweb技术,热点科技新闻,招聘信息,生活乐趣等等。点击上方的蓝字
Oracle cluster使用场景分析
Oracle cluster使用场景分析 点击上面 免费订阅本账号! 本公众号主要推送javaweb开发相关技术,基础知识点,同时会深入剖析复杂的问题,分享一些优秀的框架,大型项目经验,当今最流行的Javaweb技术,热点科技新闻,招聘信息,生活乐趣等等。点击上方的蓝字