有两个应用,后台数据库都是一个,只是用户不同
现在想实现这样的操作:
当应用一的A表插入新数据或者数据发生变化时就会在应用二的B表插入、更新数据并且还关联其它的一些表做UPDATE操作。
所以在应用一的A表加上触发器可以实现以上的操作,但是感觉效率降低明显。
毕竟A表属于应用一,为了更新应用二的B表牺牲了应用一的效率,这个方案不是很好。
请问如果使用存储过程,是不是只有在涉及到A表变更的代码当中逐一地调用存储过程?当然这样的工作量也就增加了。
各位高手还有没有什么好的建议方案??

解决方案 »

  1.   

    手动调用存储过程和使用触发器的总体时间应该是差不多的。如果要提高效率,可以定时批量来更新B表,使用merge into
    我有点好奇你的触发器是怎么写的
      

  2.   

    1、触发器是实时的,在更新A表是触发更新B表,肯定对更新操作的性能有影响。并且触发器与更新操作属于同一个事务,如果更新B表失败。那么更新A表也将一起失败回滚。
    2、如果B表对数据的更新要求不需要实时,则可以在闲时安排JOB调用存储过程来更新。
      

  3.   

    谢谢一、二楼的回复。回一楼,好奇我的触发器是怎么写 ?
            只要开发A表用户对对B表用户的增、删、改权限就行啦,反正都是在一个库里的表。回二楼,以前更新B表的操作就是通过批量完成,但是现在需要有要求实时性,所以就只有考虑触发器,但是 更新B表附带来一连串的UPDATE操作,使得只要动A表的操作,执行效率显著降低。
      
         现在效率和实时性产生了严重的冲突,呵呵。