DB2中,大数据量的实时入库(需要兼顾查询)

Green_sanD 2007-09-29 10:29:41
我们有个需求,大致以5分钟调度一次入库操作,每次入的数据量为10万,需要保存这样90天的数据.

表中有时间,业务发起方代码,业务终止方代码,业务详细信息详细信息的状态码 四个索引.

我们,需要在入库后的5分钟内实现对入库数据的查询.

目前,考虑使用DB2 9版本,对数据进行一天一张表的存放,当随着表中数据量的增长,到下午时,LOAD入库就已经很难达到要求.估计,得考虑分到一时一张表,但这样,对查询得影响时怎样,没有测试过.希望,有经验得达人共同讨论下,性能怎样调整.

目前,已经测试过DB2提供得表分区方案,因为入库直接在分区表上进行,性能很差,已经放弃;LOAD将数据入小表,然后ATTACH到大表,也因为每次ATTACH后都要设置完整性才可以查询,而SET INT每次都时对全局索引进行整理,时间耗费非常巨大,也已经放弃;目前方案中,LOAD入表,到下午性能降低,也是因为每次都整理全表索引所致.
...全文
323 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
anyezhitong 2007-10-31
  • 打赏
  • 举报
回复
基本上没有什么好的办法,你还是考虑分表处理吧。就几个表按循环顺序来吧。
DB2 LOAD的起动速度太慢,就算你按分区建库以后,按你的数据量,估计以后5分能不能完成启动都是一个问题。
而且在LOAD的时候,查询的效率也会让你吐血的。
phallus 2007-10-23
  • 打赏
  • 举报
回复
你应该建立以那四个索引为CLUSTER INDEXING的分区,这样当你用小表LOAD入以后就可以直接ATTACH进取而不需要做任何的重组。你可以试试这个方法。好的话告诉我一声。
raulchen 2007-10-21
  • 打赏
  • 举报
回复
数据库表分区怎么设计阿 哪位大虾能指点指点....
Green_sanD 2007-10-11
  • 打赏
  • 举报
回复
3楼老大,实际我们说要存90天,但现在考虑的是用90个天表来存,实际查询中,也不会有在90天表中都查询的(应用会加权限控制).

因此,需要着力考虑的是:一天的数据入库查询效率如何解决.
Green_sanD 2007-10-11
  • 打赏
  • 举报
回复
4楼,LOAD到小表,然后INSERT到大表,方案我们讨论过,而且也实际测试过.
实际上,LOAD真正从文本到数据表的过程也是很快的,慢的是数据合并完成后,对全表重整索引;如果相同的数据量,LOAD后INSERT,实际上,整理索引的时间花费更长.因为是插一条,整理一下.而且,CPU利用率很低,但使用时间很长.

5楼,分区数据库我们也用到了,但不知道你所说的LOAD一个分区查询一个分区如何实现,我们LOAD的分区就是要马上投入查询用的.


目前所用到的机器,大概有 8C 16G,分区数量有8个.
itcncs 2007-10-09
  • 打赏
  • 举报
回复
使用分区数据库,load是一个分区,查询是一个分区
linguo2000 2007-09-30
  • 打赏
  • 举报
回复
load数据到小表 然后insert到大表呢?楼主
另外加载太慢是不是跟索引太多有关系?
没有经过验证的想法,拿出来大家探讨一下。
yangxiao_jiang 2007-09-30
  • 打赏
  • 举报
回复
如果有好方法,记得通知大家。
Mr_Bean 2007-09-30
  • 打赏
  • 举报
回复
90天内最终将存储将近26亿条纪录,这样纪录数的查询本身就是一个值得考虑的问题
以目前的数据库来看,没有那个数据库能达到这样的数量级~
只能从根本上更改这样的设计了~
jarycxd 2007-09-29
  • 打赏
  • 举报
回复
以你们目前的这种数据量,暂时很难找到好的方法保证查询,我也期待达人来提供好的意见

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧