DB2批量插入性能对比
import ibm_db
import random
import time
first_names = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏' \'陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍' \'史唐费廉岑薛雷贺倪汤滕殷罗毕安常乐于时傅皮卞齐康伍余元顾孟黄穆萧尹' \'姚邵湛汪祁毛狄米贝明臧计伏成戴谈宋庞熊纪舒屈项祝董梁杜阮蓝闵季贾路娄' \'危江童颜郭梅林刁钟徐邱骆高夏蔡田樊胡凌霍虞万柯管卢莫房缪干解丁宣邓郁单' \'洪包诸左石崔龚程嵇邢裴陆翁羊惠甄曲封储靳段巫乌焦山谷车侯宓全郗班秋仲伊宫' \'宁仇栾甘厉祖武符刘景詹龙叶幸司韶郜黎蓟薄印宿白蒲邰赖卓蔺屠蒙池乔胥闻党翟' \'谭劳姬申冉雍桑桂濮牛边农温庄晏柴瞿阎连习艾向古廖'
def GBK2312():head = random.randint(0xb0, 0xf7)body = random.randint(0xa1, 0xf9)   # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围val = f'{head:x}{body:x}'str = bytes.fromhex(val).decode('gb2312')return str
# 获取随机姓名
def get_random_name():first_name = random.choice(first_names)if random.randrange(2) == 0:return first_name + GBK2312()else:return first_name + GBK2312() + GBK2312()# 方案一:拼接SQL批量插入
def first():conn = ibm_db.connect("database=POBC; ""hostname=localhost; ""port=50000; ""protocol=tcpip; ""uid=administrator; ""pwd=wyz","","")start_time = time.time()sql_array = []sql_array.append("INSERT INTO info VALUES(1,'张三','男')")sexes = ["男", "女"]for i in range(80000):name = get_random_name()sex = random.choice(sexes)str = ",({0},'{1}','{2}')".format(i,name,sex)sql_array.append(str)sql = "".join(sql_array)print("拼接完成。。")# print(sql)
stmt = ibm_db.exec_immediate(conn,sql)print(ibm_db.num_rows(stmt))print(time.time() - start_time)'''拼接完成。。8000132.71020555496216'''
# 方案二,放入事务,批量提交
def second():array = {ibm_db.SQL_ATTR_AUTOCOMMIT: ibm_db.SQL_AUTOCOMMIT_OFF}conn = ibm_db.pconnect("database=POBC; ""hostname=localhost; ""port=50000; ""protocol=tcpip; ""uid=administrator; ""pwd=wyz","","",array)sexes = ["男", "女"]start_time = time.time()try:for i in range(80000):name = get_random_name()sex = random.choice(sexes)sql = "INSERT INTO info VALUES({0},'{1}','{2}')".format(i, name, sex)ibm_db.exec_immediate(conn, sql)except:print("Transaction couldn't be completed.")ibm_db.rollback(conn)else:ibm_db.commit(conn)print("Transaction complete.")print("COST:", time.time() - start_time)'''Transaction complete.COST: 232.1929647922516'''
# 方案三,常规做法
def third():conn = ibm_db.pconnect("database=POBC; ""hostname=localhost; ""port=50000; ""protocol=tcpip; ""uid=administrator; ""pwd=wyz", "", "")sexes = ["男", "女"]start_time = time.time()for i in range(80000):name = get_random_name()sex = random.choice(sexes)sql = "INSERT INTO info VALUES({0},'{1}','{2}')".format(i, name, sex)ibm_db.exec_immediate(conn, sql)print("Transaction complete.")print("COST:", time.time() - start_time)'''Transaction complete.COST: 159.8599555492401'''
if __name__ == '__main__':# first()# second()third()

posted on 2018-11-26 23:27 要一直走下去 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/staff/p/10023823.html

DB2批量插入性能对比相关推荐

  1. MyBatis-plus的批量插入方式对比分析

    MyBatis-plus的批量插入方式对比分析   [摘要]Mybatis批量插入一直是开发者重点关注的问题,本文列举了Mybatis的五种插入方式进行对比分析,验证了五种批量插入的方式的优先级. 1 ...

  2. mybatisPlus批量插入性能优化

    背景:物联网平台背景,传感器采集频率干到了1000Hz,分了100多张表出来,还是把mysql干炸了.当前单表数据量在1000来w,从kafka上拉数据异步批量插入,每次插入数据量1500条,测试的时 ...

  3. mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭

    文章目录 前言 一.实战演示 1.单元测试 2.不添加rewriteBatchedStatements参数 3.添加rewriteBatchedStatements参数 4.采用InsertBatch ...

  4. mysql 三种工作模式_mybatis三种批量插入方式对比【面试+工作】

    准备:1.表结构CREATE TABLE `t_user` ( `id` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT '主键', `name` va ...

  5. Java多线程B站爬虫与45万条视频数据,mysql批量写入性能对比,附代码

    恩,萌新刚来,听学长说写博客可以总结梳理自己的知识,所以来试试,自娱自乐,不喜莫喷.目前还是大二狗,学Java半年多,错误很多,望大神指正. 本文涉及:Java多线程,单例模式,爬虫相关技术,MySQ ...

  6. PostgreSQL 分区表, pg_pathman ,PostgreSQL 10介绍及性能对比(转载)

    转载自:https://my.oschina.net/yonj1e/blog/868402 PostgreSQL 分区表, pg_pathman ,PostgreSQL 10介绍及性能对比 原 yon ...

  7. SQLServer中批量插入数据方式的性能对比 (转)

    转自:http://www.cnblogs.com/wlb/archive/2010/03/02/1676136.html 昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的性能 ...

  8. 转:Mybatis与JDBC批量插入数据库哪个更快

    转自 http://www.cnblogs.com/fnz0/p/5713102.html, https://www.cnblogs.com/wxw7blog/p/8706797.html [转]: ...

  9. Mybatis 批量插入事物问题

    一.首先对于批量数据的插入有两种解决方案(下面内容只讨论和Mysql交互的情况) 1)for循环调用Dao中的单条插入方法 2)传一个List<Object>参数,使用Mybatis的批量 ...

最新文章

  1. 深入理解分布式技术 - 分布式缓存实战_Hot Key 和Big Key的发现与治理
  2. 【算法漫画】什么是红黑树?(下篇)
  3. MM夏天化妆不掉妆的技巧
  4. 微软推出 VS Code 新特性,为 TypeScript 和 JavaScript 用户提供 AI 辅助开发功能
  5. android封装aidl接口,Android远端接口AIDL及服务回调用法
  6. docker-compose搭建kafka集群
  7. What Are The Differences Between Base, Medium, and Full Camera Link Configurations?
  8. Bailian2807 两倍【序列】
  9. confluence 编辑器这次没有加载_喵的Unity游戏开发之路 - 多场景:场景加载
  10. Android 学习笔记(十五):Activity-GalleryView
  11. 无线通信-信道模型概念
  12. 当我们在浏览器地址栏中输入一个网址会发生什么
  13. Oracle VM VirtualBox虚拟机新建教程(包括镜像文件的下载和安装)
  14. iOS开发者必备: 五大编程类工具
  15. 有哪些wordpress企业网站主题推荐?
  16. Riverbed连续第四年成为Gartner魔力象限领导者
  17. echarts实现左右滑动
  18. (十二)office2016-excel快速识别身份证号是男是女
  19. Service Mesh(服务网格)——后 Kubernetes 时代的微服务
  20. 软件设计师-知识的整理

热门文章

  1. 2022年java中级开发工程师最新面试题
  2. 高性能微服务网关APISIX - API文档
  3. 计算机C盘那些可以清理,电脑C盘满了怎么清理,哪些文件可以删除?
  4. dnn降噪_EdiCall通话降噪黑科技-漫步者蓝牙耳机技术有多强?
  5. 香港没有背景转计算机,香港城市大学商务咨询系统(无IT背景)理学硕士怎么样?好不好...
  6. linux禁止普通用户修改密码,禁止普通用户Sudo修改root密码
  7. 移动设备软件开发-1
  8. Day03_JavaGuava
  9. 【长东设计】、【长东应用】版本更新历史及下载地址
  10. 期待已久!邓力、刘洋等合著的这本NLP书你确定不想看?