目前公司系统使用ORACLE进行数据处理,但是出现很多性能问题。比如2张上千万的数据的表用Id关联然后数据进行insert就要需要2个小时.系统性能没有问题,hpunix,38cpu。请教这类问题,能通过什么方式解决?

解决方案 »

  1.   

    一般来说是要优化sql,千万级的两张表不应该写成直接关联的sql.
      

  2.   

    一张是账户表 a,因为有很多报表数据要关联这张表,所以这张表参与了很多sql,索引已经有8个 ,且都是组合索引。
    另一张表 b,有个id和一个信息字段。有一张报表需要出账户信息 ,另外需要账户关联取出b表的另一个信息字段,然后把所有取出的信息insert一张表 。a,b的 第一个字段都是一个date字段,组合索引为 (date  ,id)。
      

  3.   

    应该是执行计划的问题,由于你的组合索引为(date,id),在id字段作连接是用不到索引
    看看执行计划吧
      

  4.   

    每次返回的数据量有多少?  索引不能万能的,有时候加索引返回会降低速度。  可以先把结果select 出来,然后看这个sql 的执行的时间。  楼主性能问题应该出在查询上。 看下这个执行计划。 有没有可有优化的。 
    还有,楼主的数据库版本是多少? 之前有个朋友也出现过这个问题,他遇到的是Oracle 的一个bug ,把数据库升级到9.2.0.8 后就解决了。 ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977(满)
    DBA3 群:62697850   DBA 超级群:63306533;     
    聊天 群:40132017
    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请