有个问题问大家,现在在WEB上有个操作执行后,数据库中执行,百万级的A,B表连接查询后生成数据插入c表,现在是提交后页面响应太慢,想把前台提交和后台任务生成分开,有什么好办法?数据库是oracle,不能用job和trigger

解决方案 »

  1.   

    你用一个临时表存储你两个表的链接数据,每次页面提交,只需操作临时表,然后将临时表数据插入c表,这样不至于你每次页面提交都去做AB两个大表的连接操作
      

  2.   

    把前台提交和后台任务生成分开   什么意思 
     预先生成好A,B表连接查询数据
    当用户点击时  只是进行插入c表操作
    没说清楚
      

  3.   

    建一个webservice,用于执行数据库操作;web程序的后台代码异步调用webservice,不等webservice操作数据库执行完就可返回,前台用户就不会等待数据库执行了
      

  4.   

    这篇文件就是解决你的问题的1.使用DBMS_JOB包将主处理存储过程作为任务提交到任务队列中; 2.主处理存储过程在运行过程中通过DBMS_PIPE包将处理情况放在管道中; 3.监控存储过程读取管道,从而了解处理情况; 不过使用了job,如果多个用户并发操作,会不会达到job数量的上限,这就需要在业务层面做控制了,如果一个用户已经提交了一个任务,则其他用户无需再重复提交,只要能监视任务的执行进度就好了