位置: 编程技术 - 正文

在DB2中提高INSERT性能的技巧(1)(db2 insert timestamp)

编辑:rootadmin
正在看的db2教程是:在DB2中提高INSERT性能的技巧(1)。

推荐整理分享在DB2中提高INSERT性能的技巧(1)(db2 insert timestamp),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:db2 insert_update命令,db2 insert ignore,db2 insert into,db2 insert_update,db2 insert commit,db2 insert into,db2 insert commit,db2 insert语句,内容如对您有帮助,希望把文章链接给更多的朋友!

INSERT 处理过程概述首先让我们快速地看看插入一行时的处理步骤。这些步骤中的每一步都有优化的潜力,对此我们在后面会一一讨论。

在客户机准备 语句。对于动态 SQL,在语句执行前就要做这一步,此处的性能是很重要的;对于静态 SQL,这一步的性能实际上关系不大,因为语句的准备是事先完成的。 在客户机,将要插入的行的各个 列值组装起来,发送到 DB2 服务器。 DB2 服务器确定将这一行插入到哪一页中。 DB2 在 用于该页的缓冲池中预留一个位置。如果 DB2 选定的是一个已有的页,那么就需要读磁盘;如果使用一个新页,则要在表空间(如果是SMS,也就是系统管理存储的表空间)中为该页物理地分配空间。插入了新行的每一页最后都要从缓冲池写入到磁盘。 在目标页中对该行进行格式化,并获得该行上的一个X(exclusive,独占的) 行锁。 将反映该 insert 的一条记录写入到日志缓冲区中。 最后提交包含该 insert 的事务,如果这时日志缓冲区中的记录还没有被写入日志文件的话,则将这些记录写到日志文件中。 此外,还可能发生很多类型的附加处理,这取决于数据库配置,例如,索引或触发器的存在。这种额外的处理对于性能来说也是意义重大的,我们在后面会讨论到。

insert 的替代方案在详细讨论 insert 的优化之前,让我们先考虑一下 insert 的两种替代方案:load 和 import。import 实用程序实际上是 SQL INSERT 的一个前端,但它的某些功能对于您来说也是有用的。load 也有一些有用的额外功能,但是我们使用 load 而不使用 insert 的主要原因是可以提高性能。

load 直接格式化数据页,而避免了由于插入导致的对每一行进行处理的大部分开销(例如,日志记录在这里实际上是消除了)。而且,load 可以更好地利用多处理器机器上的并行性。在 V8 load 中有两个新功能,它们对于 load 成为 insert 的替代方案有着特别的功效,这两个功能是:从游标装载和从调用层接口(CLI)应用程序装载。

从游标装载这种方法可用于应用程序的程序代码(通过 db2Load API),或用于 DB2 脚本。下面是后一种情况的一个例子: declare staffcursor cursor forselect * from staff; load from staffcursor of cursor insert into myschema.new_staff; 这两行可以用下面一行替代: insert into myschema.new_staff select * from staff 同等效的 INSERT ... SELECT 语句相比,从游标装载几乎可以提高 % 的性能。

从 CLI 装载这种方法显然只限于调用层接口(CLI)应用程序,但是它非常快。这种技巧非常类似于数组插入,DB2 附带了这样的示例,使用 load 时的速度是使用经过完全优化的数组插入时的两倍,几乎要比未经优化的数组插入快 倍。

在DB2中提高INSERT性能的技巧(1)(db2 insert timestamp)

所有 insert 可以改进的地方让我们看看插入处理的一些必要步骤,以及我们可以用来优化这些步骤的技巧。

1. 语句准备作为一条 SQL 语句,INSERT 语句在执行之前必须由 DB2 进行编译。这一步骤可以自动发生(例如在 CLP 中,或者在一次 CLI SQLExecDirect 调用中),也可以显式地进行(例如,通过一条 SQL Prepare、CLI SQLPrepare 或 JDBC prepareStatement 语句)。该编译过程牵涉到授权检查、优化,以及将语句转化为可执行格式时所需的其他一些活动。在编译语句时,语句的访问计划被存储在包缓存中。

如果重复地执行相同的 INSERT 语句,则该语句的访问计划(通常)会进入到包缓存中,这样就免除了编译的开销。然而,如果 insert 语句对于每一行有不同的值,那么每一条语句都将被看成是惟一的,必须单独地进行编译。因此,将像下面这样的重复语句: insert into mytable values (1, 'abc') insert into mytable values (2, 'def') 等等, 换成带有参数标记的语句,一次准备,重复执行,这样做是十分可取的: insert into mytable values (?, ?)

使用参数标记可以让一系列的 insert 的运行速度提高数倍。(在静态 SQL 程序中使用主机变量也可以获得类似的好处。)

2. 发送列值到服务器可以归为这一类的优化技巧有好几种。最重要的一种技巧是在每条 insert 语句中包括多行,这样就可以避免对于每一行都进行客户机-服务器通信,同时也减少了 DB2 开销。可用于多行插入的技巧有:

[1] [2] 下一篇

db2v8的pdf文档资料 正在看的db2教程是:db2v8的pdf文档资料。db2v8的pdf文档资料下载地址:

DB2 9数据服务器发展3部曲 正在看的db2教程是:DB数据服务器发展3部曲。很难想象,现在还有什么应用跟数据库无关。就连微软的下一代操作系统Vista,也要用其数据库来组织其

对比DB2 9和DB2 V8.x中的XML功能 正在看的db2教程是:对比DB和DB2V8.x中的XML功能。简介DB2UDBVersion8.x中的XML支持基于DB2的关系基础设施。XML数据要么按原样存储为字符大对象(CLOB),要么

标签: db2 insert timestamp

本文链接地址:https://www.jiuchutong.com/biancheng/319689.html 转载请保留说明!

上一篇:DB2编程序小小技巧(db2入门)

下一篇:db2v8的pdf文档资料(db2profile)

  • 租赁收入缴纳个人所得税
  • 银行电子承兑到期多久时间之内可以兑现
  • 长期股权投资为什么要冲减资本公积
  • 银行回单日期晚于做账日期
  • 同一控制企业合并的特征包括
  • 罚款收据与通用的区别
  • 小规模纳税人购车好处
  • 收到别人的承兑怎么入账
  • 电费发票开据后如何入帐
  • 付城镇土地使用税是多少
  • 出租厂房的摊销额会计分录
  • 个税手续费退还时间
  • 入账发票是什么意思
  • 营改增后建筑业
  • 开增值税票需要对方什么资料
  • 电话费发票可以重新开吗
  • 虚开增值税发票具体操作是怎样的?
  • 增值税滞留票产生的原因及处理办法
  • 免征残保金还需交税吗
  • 增值税小规模纳税人
  • 跨年暂估成本的账务处理冲回
  • 上月留抵进项抵扣分录
  • 售后服务对客户满意度的影响论文
  • 返利冲减销售收入还是进费用
  • 会计中坏账准备的借贷方向
  • 金蝶软件怎么批量审核凭证
  • 本年利润余额的计算公式
  • 总分类账是什么的依据
  • 个人与公司交易超过20万
  • 苹果15手机价格和图片颜色
  • 环保税与排污费的联系
  • 公司试乘试驾车卖掉在增值税哪个模块里开具
  • 开增值税专用发票必须走公账吗
  • 抵扣联和发票联丢失怎么办
  • windows11 beta渠道
  • 摊销租赁费的会计分录
  • echarts右侧y轴
  • uniapp相关面试题
  • javaweb总结笔记
  • 个税网上申报流程视频
  • 小型微利企业符合条件的有
  • 小规模收到成本发票分录
  • 建筑企业提供建筑服务适用一般计税方法的,以取得
  • 返利销售的增值税怎么算
  • sqlserver判断查询结果是否为空
  • 应付利息的会计分录怎么写
  • 微信账单可以用来干嘛
  • 施工企业预估成本怎么算
  • 固定资产进项税率
  • 无偿划转资产需要挂其他应收款吗
  • 应收账款提坏账分录
  • 票据行为的构成要件
  • 企业收到政府补助金80 000元,存入银行
  • 购买发票打印机如何账务处理?
  • 预计负债 负债 区别
  • 申报抵扣的进项税额怎么算
  • 小规模纳税人抵扣税控盘增值税怎么申报
  • win8.1还原系统
  • win10睡眠什么意思
  • Linux桌面环境安装
  • xp系统无法正常启动怎么办
  • get mac
  • window10 系统安装
  • 日历功能在哪里设置
  • 11月编程语言排行榜出炉
  • 用正则表达式替换掉两汉字间的括号
  • jquery mobile app案例
  • android四大组件生命周期
  • shell 管道 并行
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
  • 详解JavaScript对W3C DOM模版的支持情况
  • jquery遍历元素并赋值
  • js的判断类型
  • unity-gain
  • 江苏省增值税专用发票怎么开
  • 目前光伏太阳能组件产量最高的国家是( )
  • 年轻干部是什么意思
  • 曲靖市国家税务局杨春天
  • 现任新疆兵团政治部主任
  • 单位纳税人什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设