我有一个发送信息用的接口表(ORACLE),平时各部门有要发送的信息都会插入这张表,然后我通过VC开发的程序(WINDOWS平台)定时来读取这张接口表的记录,取走后再进行删除,但由于要发送的信息实时性比较高,不知道ORACLE这种表,在短时间里频繁的查询删除(如一秒程序定时读一下表)会不能对数据库有影响. 
   请高手指教,像有的公司开发的接口表,我知道都是实时取数据的(如现在插入数据,下一秒就已取走了),不知道是用什么办法实现的.也是用这种方法进行查询删除吗? 请指导一下比较的实现方法,谢谢喽!
   还有问估计不能实现的问题: 不知道能不能让ORACLE判断表有数据时,自动执行存储过程取数据(实时,不是等定时任务的时间到了才执行),当表没有数据时自动停止执行.哈哈哈...见笑了.

解决方案 »

  1.   

    实时也是一种定时,不过是周期短而已。job就可以只看到楼主提问,没见过楼主结贴,结贴率越来越低了
      

  2.   

    有一个问题,oracle的查询是不锁表的.
    我不知道你所谓的取走是怎么实现的?我估计可能通过查询读取的结果集然后再插入到别的地方去,但是由于查询是不锁表的,所以说当有人在你完成查询之后删除之前向库里提交数据并完成的话,你就会缺少刚刚上传的这些数据,这是你程序设计的BUG
      

  3.   

    作为你这里所说的接口表的话,应该是没有其他的方法来做了,除非你的外部程序做修改。通过trigger(表级)来调用procedure,修改你的外部程序的数据。
      

  4.   

    其实这种需求不应用接口表的形式,可以用JAVA写一个共用的数据交互接口,用WEBSERVER部署,