考虑使用快照(物化视图). 
===========================
oldwain
---------------------------
http://www.itpub.net/index.php?referrerid=32 
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=oracle
http://www.oraclefan.net/

解决方案 »

  1.   

    zcs_1(生生不息) 和jiezhi(相逢何必曾相识) 说的不错,首先是要对查询进行优化。
    1.建立索引
    2.通过用Sql语句进行两个表的比较
    3.这种比较,如果用Cursor不大合适.
      

  2.   

    我现在只能拿到这些表,他们是以营业部组织数据的,关键是要从已录入的帐号表中判断当前这条记录是不是已存在,好象用count的方法,然后判断如果count出来的值是否为0,如果是0,则认为帐号需要添加,这样做处理特别慢。
      

  3.   

    你的问题描述得不清不楚实难回答 .
    update 表名
     set ...
     where 帐号 in ( select distinct 帐号 from 今天的表
                     minus
                     select distinct 帐号 from 昨天的表
                   )
      

  4.   

    我的表里的记录每天不同,但是表是同一张,就是说,今天的记录在明天的记录进来前要清空。而且,需要的是insert操作!
      

  5.   

    还未处理好,Up 一下,欢迎建议!我现在想这样,每个营业部的记录可能不超过10万条,拿一个个营业部来处理,使用NOT EXISTS语句来判断哪些是不存在的帐号,不存在的添加。
      

  6.   

    你可以用应用程序来辅助解决,写一个类似中间件的程序,但它只提供对你那张100万记录大表帐号的内存缓存(1^6*10(bytes)/1024=10M 内存),每次查找帐号是否存在直接找此内存即可;
    甚至可以采用对表分段的方式,对此内存也分段,采用多线程来查询(如果你的rs/6000有多个cpu的话,那简直应该很快:) );
    sure,当有新记录时也需要更新改内存缓冲.
      

  7.   

    同意  Oldwain 
    使用 snapshot(物化视图)大家先去研究一下snapshot再来说这个问题好不好
      

  8.   

    我也曾经遇到类似的问题,
    最后是在源表上加了一个INSERT触发器,每次对新增的帐务处理,这样快很多,还可以做到实时统计。
      

  9.   

    我也曾经遇到类似的问题,
    最后是在源表上加了一个INSERT触发器,每次对新增的帐务处理,这样快很多,还可以做到实时统计:
    也许汽车都可以开过去,你非要用马车,说比走路强多了
    那当然了
      

  10.   

    对不起,biti_rainy(biti_rainy) ,我是个菜鸟,不太会开汽车,
    我只是想来看看帮帮忙,提供一下我的看法。
    大路上有开汽车的也有骑自行车的,没有规定我不能用马车啊?
    戏法人人会变,各有巧妙不同。
      

  11.   

    不好意思,源表里每天只保存一天的记录,就是说,没有时间字段,今天表里的内容就是描述的今天的情况,明天写的是明天的状况。还有就是,用触发器,如果一次性倒入100多万条记录,我写的存储过程要多久,触发器可能就要响应多久,没准会把系统给触发崩掉,那可就只有呼天了。
    不管怎样,多谢大家帮忙,我这里已有一些进展。
    能不能麻烦上面提到snapshot的朋友讲讲它的大致原理?谢谢!