我的程序中几百个线程同时对一张表进行插入操作,现在我发现会出现等待的现象,数据的实时性很差,这是否是oracle本身的机制造成的,如果我想缩短这个等待的时间,是不是需要调整oracle的什么参数?或者有什么别的好办法?

解决方案 »

  1.   

    你和oracle建立了多少连接?
    你的默认连接设置是多少?
    你的网络如何?
      

  2.   

    上面提到的都是实时的数据库表,我的数据库中还有历史表,分周表,月表和年表,每天,每周,每月的时候都会执行一个JOB将数据库分发到不同的历史表中去,现在我担心这样的JOB执行起来也会拖垮数据库,比如月表要导入导年表中去的话,表的数量级可能会是千万级别的 我的实时表和历史表表结构都是一样的,我现在job里执行的代码是“insert into tb_his_data (select * from tb_cur_data)”,这样做的效率高,还是用游标的方式替代要影响的性能低? 
      

  3.   

    实时性对于oracle来说,要求太高了!建议更换实时数据库,如pi等!
      

  4.   

    难怪人家说CSDN上无高手,像上面的这种回答:
    “问题是..实时性这东西..不是三言两语能说明白的.....”
    不知道你是来凑数的还是起哄的,不知道就不知道,你回什么贴啊?
      

  5.   

    你自己说别人半天,其实你自己很多问题都没描述清楚,
    就象一般人总问,我电脑速度慢,是怎么回事啊,晕。
    你倒是说的具体一点啊,你的表建的合理,倒来倒去数据,是在意义不大,
    顺便说一下,全中国进出口贸易的纪录都是百万级的就可以了,
    你为什么不先看看表结构是否合理?你纪录的东西是否都必要?
    再说,你不要混淆概念,
    你所说的实时似乎是现在用的数据,也就是当前数据而已,
    insert into tb_his_data (select * from tb_cur_data)”
    这样你查询速度就快了?你为什马不式式oracle的分区?
    还有job可以定时,我不信你夜里3点还业务繁忙。
      

  6.   

    楼主垃圾人...来好心顶你的帖子...到说起我的不是了.........
    大家评评理......说什么csdn无高手....高手也是从金兵甲做起来的....就像你这种人........有啥可牛比的.....鄙视你....
      

  7.   

    楼主的态度,呵呵这个世界没有救世主,也就没有高人不要期望什么问题在某个论坛里问一下,就马上有人帮你解答,你又不支付工资,没有人有那个义务。何况你的问题描述的并不是很清楚,你自己对oracle的了解可能也不太多,建议先咨询一下贵公司的DBA,他会给出更好的建议
      

  8.   

    几百个线程同时对一张表进行插入操作
    =====对于任何一个RDBMS而言,都要保护数据的完整性和一致性,所以更新数据的时候需要先获得一定级别的锁,几百个线程同时操作一个表,肯定会发生锁等待,这个恐怕什么数据库都无法避免,还是先找找应用的设计是否合理,是否有必要这样做。