现在有个比较急的问题。 我们的数据库服务器平时访问还算正常。我们运行里面的报表计算的时候。web的响应就变的非常慢。由于报表是后台服务就算的。
现在想加一台电脑。把报表的计算放到另外的电脑来进行。 任何部署可以达到这种效果。 该怎么来部署。

解决方案 »

  1.   

    “运行里面的报表计算”只使用查询sql?还是需要其他的更新插入等DML操作?
      

  2.   

    将OLTP的数据同步到另一台机器(如果报表的运算不是需要非常实时,可在一天中最空闲的时候进行同步动作,这样就可以在另一台机器上运行报表计算程序,当然最好把展示应用程序的数据源指向OLAP的机器。
      

  3.   

    如果报表计算是只读的应用程序的话,可以考虑使用 dataguard 来实现,DG 服务器既可以用来做热备,可以用作只读服务器。
      

  4.   

    1.The first thing you need to do is tuning your report application,improve its performace.
    2.transfer data to another database on another machine
      

  5.   

    跟踪下SQL脚本,用TKPROF分析,根据结果进行优化
      

  6.   

    通过SQL分析,得到具体的原因是正途。但原则上,对于大量的数据计算,可能需要从处理方式进行调整。
    如:每天量不多的话,在系统空闲时候,做小粒度的结算。不应该在用户触发时计算。如:30分钟,1小时等,视业务形式定。
    使用内存数组里计算时等。
          
      

  7.   

    1.找一台较好的闲置机器并安装好操作系统和Oracle;
    2.从数据库服务器中用exp导出数据;
    3.用imp导入数据至新机中;
    4.在一台客户机(指向次数据库)中计算报表。如果要实时性,可考虑在次数据库服务器中使用JOB,来进行定时备份和导入。