oracle+循环插入sql,SQL server,Oracle循环插入百万数据

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秒

oracle+循环插入sql,SQL server,Oracle循环插入百万数据_第1张图片

这脚本效率不是很满意,有更高效率的脚本欢迎在评论区分享

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秒

oracle+循环插入sql,SQL server,Oracle循环插入百万数据_第2张图片

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技术,热点科技新闻,招聘信息,生活乐趣等等。点击上方的蓝字

你可能感兴趣的:(oracle+循环插入sql)