您的位置:程序门 -> db2 -> 数据库开发



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


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


db2中,大数据量的实时入库(需要兼顾查询)[已结贴,结贴人:green_sand]
发表于:2007-09-29 10:29:41 楼主
        我们有个需求,大致以5分钟调度一次入库操作,每次入的数据量为10万,需要保存这样90天的数据.

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

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

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

        目前,已经测试过db2提供得表分区方案,因为入库直接在分区表上进行,性能很差,已经放弃;load将数据入小表,然后attach到大表,也因为每次attach后都要设置完整性才可以查询,而set   int每次都时对全局索引进行整理,时间耗费非常巨大,也已经放弃;目前方案中,load入表,到下午性能降低,也是因为每次都整理全表索引所致.
发表于:2007-09-29 14:42:221楼 得分:0
以你们目前的这种数据量,暂时很难找到好的方法保证查询,我也期待达人来提供好的意见
发表于:2007-09-30 09:52:352楼 得分:0
如果有好方法,记得通知大家。
发表于:2007-09-30 20:30:423楼 得分:0
90天内最终将存储将近26亿条纪录,这样纪录数的查询本身就是一个值得考虑的问题
以目前的数据库来看,没有那个数据库能达到这样的数量级~
只能从根本上更改这样的设计了~
发表于:2007-09-30 23:17:084楼 得分:0
load数据到小表   然后insert到大表呢?楼主
另外加载太慢是不是跟索引太多有关系?
没有经过验证的想法,拿出来大家探讨一下。
发表于:2007-10-09 14:20:005楼 得分:0
使用分区数据库,load是一个分区,查询是一个分区
发表于:2007-10-11 23:33:196楼 得分:0
        4楼,load到小表,然后insert到大表,方案我们讨论过,而且也实际测试过.
        实际上,load真正从文本到数据表的过程也是很快的,慢的是数据合并完成后,对全表重整索引;如果相同的数据量,load后insert,实际上,整理索引的时间花费更长.因为是插一条,整理一下.而且,cpu利用率很低,但使用时间很长.

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


        目前所用到的机器,大概有   8c   16g,分区数量有8个.
发表于:2007-10-11 23:36:297楼 得分:0
    3楼老大,实际我们说要存90天,但现在考虑的是用90个天表来存,实际查询中,也不会有在90天表中都查询的(应用会加权限控制).

    因此,需要着力考虑的是:一天的数据入库查询效率如何解决.
发表于:2007-10-21 19:48:498楼 得分:0
数据库表分区怎么设计阿   哪位大虾能指点指点....
发表于:2007-10-23 01:32:219楼 得分:15
你应该建立以那四个索引为cluster   indexing的分区,这样当你用小表load入以后就可以直接attach进取而不需要做任何的重组。你可以试试这个方法。好的话告诉我一声。
发表于:2007-10-31 23:55:3410楼 得分:15
基本上没有什么好的办法,你还是考虑分表处理吧。就几个表按循环顺序来吧。
db2   load的起动速度太慢,就算你按分区建库以后,按你的数据量,估计以后5分能不能完成启动都是一个问题。
而且在load的时候,查询的效率也会让你吐血的。


快速检索

最新资讯
热门点击