互联网服务 数据库

DMS表空间数据插入效率

DB2 DMS表空间。操作:
我做数据插入。第一次表刚建立完成,数据为空,插入,1g数据,需要20min。


但是truncate后,第二次插入,1g数据只需要8min,同样的表。




还请各位专家能够帮忙分析下?需要提供啥就和我说

补充我的测试结果和现象:


   假如首次先插入1g的数据,那么是1g 20min。重复插入则1g 8min

   假如先插入1g的数据,再插入512M,那么512m的数据,是10min

   假如先插入1g的数据,然后删掉该表,那么再插入512M的数据,是5min

那么表明:是否有可能是DMS向系统申请空间导致的资源消耗?请大家一起讨论下

附件:

附件图标 insert_over_500.res (606.66 KB)

附件图标 insert_iner_500.res (606.66 KB)

参与42

41 同行回答

wp28556259 wp28556259 软件架构设计师 CMBC
回复 31# ninth     和九哥观点一样~显示全部
回复 31# ninth


    和九哥观点一样~ 收起
银行 · 2011-11-29
浏览258
ninth ninth 数据库管理员 拓维信息系统股份有限公司
因为不知道你的truncate是怎么做的,可以试试这个:1、第一次插入数据后,收集一下表的信息,看表的fpages是多大2、truncate后,再收集一下表的信息,看表的fpages是多大3、比较前后的fpages大小如果没有变化,说明以后新插入是利用第一次分配的空间,理论上是要比第一次快点...显示全部
因为不知道你的truncate是怎么做的,可以试试这个:
1、第一次插入数据后,收集一下表的信息,看表的fpages是多大
2、truncate后,再收集一下表的信息,看表的fpages是多大
3、比较前后的fpages大小

如果没有变化,说明以后新插入是利用第一次分配的空间,理论上是要比第一次快点 收起
互联网服务 · 2011-11-29
浏览288
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 29# drdb2    感觉和Source关系不大啊。我把source重启过了(os和db2),测试结果仍然是一样。应该是目标数据库的缘故。显示全部
回复 29# drdb2


   感觉和Source关系不大啊。我把source重启过了(os和db2),测试结果仍然是一样。应该是目标数据库的缘故。 收起
互联网服务 · 2011-11-29
浏览284
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 27# weiruan85    兄你说的没错,kettle是用jdbc的batch来做批量提交。   明儿可以试试,不过我个人觉得,结果应该是一样的。JDBC没有做缓存这块:lol显示全部
回复 27# weiruan85


   兄你说的没错,kettle是用jdbc的batch来做批量提交。
   明儿可以试试,不过我个人觉得,结果应该是一样的。JDBC没有做缓存这块:lol 收起
互联网服务 · 2011-11-28
浏览280
weiruan85 weiruan85 数据库管理员 ibm
兄以上的方法全是基于kettle ? 如果是 ,能不能在数据库上直接用insert ,看看时间如何。 kettle原理应该是jdbc 的batch 提交 。先隔离jdbc的问题,看看数据库层面是啥情况显示全部
兄以上的方法全是基于kettle ? 如果是 ,能不能在数据库上直接用insert ,看看时间如何。 kettle原理应该是jdbc 的batch 提交 。先隔离jdbc的问题,看看数据库层面是啥情况 收起
政府机关 · 2011-11-28
浏览260
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 23# mdkii    没有完整的步骤,是采用Kettle工具来实现抽取和载入功能的   kettle抽取就是一个select sql,而载入,则是批量insert 操作   db2batch信息,明儿可以试下,贴贴。不过关于我的测试结果,能不能有某些猜想或者推断?:   &nbs...显示全部
回复 23# mdkii


   没有完整的步骤,是采用Kettle工具来实现抽取和载入功能的
   kettle抽取就是一个select sql,而载入,则是批量insert 操作

   db2batch信息,明儿可以试下,贴贴。不过关于我的测试结果,能不能有某些猜想或者推断?:

      假如首次先插入1g的数据,那么是1g 20min。重复插入则1g 8min

       假如先插入1g的数据,再插入512M,那么512m的数据,是10min

       假如先插入1g的数据,然后删掉该表,那么再插入512M的数据,是5min 收起
互联网服务 · 2011-11-28
浏览273
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 24# redspr    Db2 和oS 我都重启了遍,试了,无果啊。显示全部
回复 24# redspr


   Db2 和oS 我都重启了遍,试了,无果啊。 收起
互联网服务 · 2011-11-28
浏览263
redspr redspr 数据库管理员 北京普远天成科技有限公司
我也觉得是data cache, DB2 自己的buffer pool会在你执行查询后缓存结果集,在你下次查询的时候就会直接从buffer pool里读数据,这样快很多. 你可以再执行一个大数据量的查询把buffer pool清空,然后应该就会跟第一次一样要20分钟了...显示全部
我也觉得是data cache, DB2 自己的buffer pool会在你执行查询后缓存结果集,在你下次查询的时候就会直接从buffer pool里读数据,这样快很多. 你可以再执行一个大数据量的查询把buffer pool清空,然后应该就会跟第一次一样要20分钟了 收起
互联网服务 · 2011-11-28
浏览255
mdkii mdkii 软件开发工程师 bocn
把完整的步骤和命令贴上来,然后把两次insert执行的db2batch 的结果贴上来。db2batch -d -f sqlfile -o r 0 p 5 e yes -i complete显示全部
把完整的步骤和命令贴上来,
然后把两次insert执行的db2batch 的结果贴上来。
db2batch -d -f sqlfile -o r 0 p 5 e yes -i complete 收起
银行 · 2011-11-28
浏览260
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 9# weiruan85    假如首次先插入1g的数据,那么是1g 20min。重复插入则1g 8min   假如先插入1g的数据,再插入512M,那么512m的数据,是10min   假如先插入1g的数据,然后删掉该表,那么再插入512M的数据,是5min...显示全部
回复 9# weiruan85


   假如首次先插入1g的数据,那么是1g 20min。重复插入则1g 8min
   假如先插入1g的数据,再插入512M,那么512m的数据,是10min

   假如先插入1g的数据,然后删掉该表,那么再插入512M的数据,是5min 收起
互联网服务 · 2011-11-28
浏览259

提问者

xxzmxx
软件开发工程师 招行软件中心
评论315

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-11-28
  • 关注会员:1 人
  • 问题浏览:23922
  • 最近回答:2011-12-01
  • X社区推广