互联网服务 数据库

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 同行回答

xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 2# drdb2     问题定位到,还真是OS的问题,不过是源库的。在tbs插入时,os做了缓存,写入磁盘是异步的。主要用到了哦Nocomp内存空间。显示全部
回复 2# drdb2


    问题定位到,还真是OS的问题,不过是源库的。在tbs插入时,os做了缓存,写入磁盘是异步的。主要用到了哦Nocomp内存空间。 收起
互联网服务 · 2011-12-01
浏览681
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 40# wp28556259    alter tablespaces 。。。 reduce是什么意思呢?显示全部
回复 40# wp28556259


   alter tablespaces 。。。 reduce是什么意思呢? 收起
互联网服务 · 2011-11-30
浏览663
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 38# mdkii    我有个思路,会不会和Tbalespace 的 HWM有关系呢?显示全部
回复 38# mdkii


   我有个思路,会不会和Tbalespace 的 HWM有关系呢? 收起
互联网服务 · 2011-11-30
浏览671
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 35# weiruan85    问题基本上已经可以隔离出来了啊,不是source的问题,而是目标库的问题。  ETL抽取,是源(db2)到目标(db2)的过程。显示全部
回复 35# weiruan85


   问题基本上已经可以隔离出来了啊,不是source的问题,而是目标库的问题。
  ETL抽取,是源(db2)到目标(db2)的过程。 收起
互联网服务 · 2011-11-29
浏览678
xxzmxx xxzmxx 软件开发工程师 招行软件中心
回复 26# xxzmxx    db2batch的测试过,不过其实差距并不大,我只做了批量50条插入,分10次,就是500条。   两者相差就0.1s左右吧。   这个是本来存在1g表,后来表数据被我删除,我再次插入结果这个是,没有被插入过的表,空间亦没有被分配,插入的结果其实...显示全部
回复 26# xxzmxx


   db2batch的测试过,不过其实差距并不大,我只做了批量50条插入,分10次,就是500条。
   两者相差就0.1s左右吧。

   
这个是本来存在1g表,后来表数据被我删除,我再次插入结果


1.jpg



这个是,没有被插入过的表,空间亦没有被分配,插入的结果

其实差距到不是很大,大家看看 收起
互联网服务 · 2011-11-29
浏览735
drdb2 drdb2 系统工程师 se
回复  drdb2    感觉和Source关系不大啊。我把source重启过了(os和db2),测试结果仍然是一样。应该是 ...xxzmxx 发表于 2011-11-29 09:29 (os and db2) is the target side.source is the 源 pentaho side...显示全部
回复  drdb2


   感觉和Source关系不大啊。我把source重启过了(os和db2),测试结果仍然是一样。应该是 ...
xxzmxx 发表于 2011-11-29 09:29


(os and db2) is the target side.
source is the 源 pentaho side 收起
互联网服务 · 2011-11-29
浏览670
ninth ninth 数据库管理员 拓维信息系统股份有限公司
因为不知道你的truncate是怎么做的,可以试试这个:1、第一次插入数据后,收集一下表的信息,看表的fpages是多大2、truncate后,再收集一下表的信息,看表的fpages是多大3、比较前后的fpages大小如果没有变化,说明以后新插入是利用第一次分配的空间,理论上是要比第一次快点...显示全部
因为不知道你的truncate是怎么做的,可以试试这个:
1、第一次插入数据后,收集一下表的信息,看表的fpages是多大
2、truncate后,再收集一下表的信息,看表的fpages是多大
3、比较前后的fpages大小

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


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


   兄你说的没错,kettle是用jdbc的batch来做批量提交。
   明儿可以试试,不过我个人觉得,结果应该是一样的。JDBC没有做缓存这块:lol 收起
互联网服务 · 2011-11-28
浏览279
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
浏览272

提问者

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

相关问题

相关资料

相关文章

问题状态

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