互联网服务 数据库

请教load比insert慢的原因

数据量500W,分区环境,目标表是使用了表分区,看了一下log,时间花在PARTITION阶段(索引维护几乎没花时间),但逐条insert不是一样也要计算插入哪个PARTITION吗?load时CPU资源是空闲的,util heap也足够,为什么会这样?或者说在PARTITION这个阶段有什么优化手段吗?求解。

方法一:
游标load,load from cursor ... insert into ... indexing mode incremental lock with force"
耗时:
real    2m17.04s
user    0m0.01s
sys     0m0.01s

SQL27935I  "PARTITION" has ended on partition "1" at time "04/11/2011 14:20:23.839334".
SQL27936I  Elapsed time: " 0" hours, " 1" minutes, "27" seconds.
SQL27937I  Throughput: "68183" records/sec.


方法二:
直接insert ... from select ...
耗时:
real    0m52.02s
user    0m0.01s
sys     0m0.01s
参与26

25 同行回答

kt563 kt563 数据库管理员 交行卡中心
建议查看 db2rhist.asc 这个文件大小。看是否过大,LOAD装载需要改写这个文件的。一般会在:~/instancename/NODE0000/SQL00001/ 下,需要存档的话备份到其他目录,不需要的话直接删除即可。显示全部
建议查看 db2rhist.asc 这个文件大小。
看是否过大,LOAD装载需要改写这个文件的。
一般会在:

~/instancename/NODE0000/SQL00001/
下,需要存档的话备份到其他目录,不需要的话直接删除即可。 收起
银行 · 2011-08-18
浏览1078
qingduo04 qingduo04 系统架构师 华为
顶一下,求解,头一次看到这种问题。显示全部
顶一下,求解,头一次看到这种问题。 收起
系统集成 · 2011-08-16
浏览1072
wp28556259 wp28556259 软件架构设计师 CMBC
顶一下~求解~显示全部
顶一下~求解~ 收起
银行 · 2011-08-16
浏览1055
东施一频 东施一频 售前工程师 vxczvcx
感谢,借鉴了。显示全部
感谢,借鉴了。 收起
医院 · 2011-04-26
浏览1086
drdb2 drdb2 系统工程师 se
Need to open a PMR with IBM support显示全部
Need to open a PMR with IBM support 收起
互联网服务 · 2011-04-25
浏览1067
zss0109211 zss0109211 数据库管理员 null
学习了显示全部
学习了 收起
互联网服务 · 2011-04-13
浏览1056
chenxw_mail chenxw_mail 项目经理 123
时间没花在索引维护上,表基数也考虑过了,目标表没有记录的时候也是一样的结果,存储空间没有问题。显示全部
时间没花在索引维护上,表基数也考虑过了,目标表没有记录的时候也是一样的结果,存储空间没有问题。 收起
互联网服务 · 2011-04-13
浏览1052
fyhlove fyhlove 数据库管理员 上海诺祺科技有限公司
当表中的基数特别大,而且有多个索引时,采用load cursor是很有可能比insert慢的,load cursor会进行索引重建,重新partition,这两部都很慢,而且如果你的临时表空间不够大的话,还容易造成临时表空间爆满。...显示全部
当表中的基数特别大,而且有多个索引时,采用load cursor是很有可能比insert慢的,load cursor会进行索引重建,重新partition,这两部都很慢,而且如果你的临时表空间不够大的话,还容易造成临时表空间爆满。 收起
IT分销/经销 · 2011-04-13
浏览1074
chenxw_mail chenxw_mail 项目经理 123
调整分区键之前:loadreal    1m45.50suser    0m0.01ssys     0m0.00sinsertreal    0m56.72suser    0m0.01ssys     0m0.01s调整为不同的分区键之后:loadreal    2m14.45sus...显示全部
调整分区键之前:
load
real    1m45.50s
user    0m0.01s
sys     0m0.00s
insert
real    0m56.72s
user    0m0.01s
sys     0m0.01s


调整为不同的分区键之后:
load
real    2m14.45s
user    0m0.00s
sys     0m0.01s
insert
real    1m30.57s
user    0m0.01s
sys     0m0.01s

差不多的结果,load和insert都增加了30秒,而且insert还是比load要快,费解。 收起
互联网服务 · 2011-04-13
浏览1075
trigger.lyw trigger.lyw 系统集成工程师 宝信软件
学习了  还没接触过db2 的分区  感觉好像是个复杂的东东吧:P显示全部
学习了  还没接触过db2 的分区  感觉好像是个复杂的东东吧:P 收起
机械装备 · 2011-04-12
浏览1056

提问者

chenxw_mail
项目经理 123
评论110

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-04-11
  • 关注会员:1 人
  • 问题浏览:18977
  • 最近回答:2011-08-18
  • X社区推广