最近的系统感觉是比较慢,发现基本是由于对数据库访问获取数据比较慢造成,所以很自然想到了对sql的优化,也确实做了一些工作也有点收效,但是一些sql确实不能再优化了,但是这些sql执行仍然需要无法接受的时间,我也知道这么多时间的原因是由于sql本身的复杂性以及数据库数据比较多造成的。
但是反正最后的结果就是一个让人无法接受的时间,我不知道大家碰到类似的情况是如何处理的
有什么合适的技术或架构?

解决方案 »

  1.   


    用AWR 分析下数据库,看一下top sql ,top event, 这个慢可能是sql效率问题,而已可能是由磁盘I/0 的问题。 所以先分析下,在慢慢判断..
      

  2.   

    你的这个问题我们之前也遇到过,一般有2种情况,一个原因是sql语句写法有问题,需要优化,另外一个原因就是硬盘的转速,查询慢和磁盘转速关系较大
      

  3.   

    oracle中数据量大了就要把表进行分区存储,分区存储后查询时采用分区查询效率就很高了,数据量再多也不怕!望楼主根据自己的情况进行分区改造!
      

  4.   

       恩!做个awr报表分析下数据库!但是awr需要一定功底才能看懂的!
      

  5.   

    一、调整数据结构的设计
    二、调整应用程序结构设计
    三、Oracle SQL性能优化
    四、调整服务器内存分配
    五、调整硬盘I/O
    六、调整操作系统参数优化有很多方面,所以先分析下具体原因,再判断..
      

  6.   

    分区,索引,建临时表 ,年结,月结,日结 ,都不行 
    换硬盘,加cpu  我们这边数据库服务器16个cpu
      

  7.   

    是有点复杂化,不会无路可走了 做个AWR报表来分析下数据库的各项指标呢,或许有新发现
      

  8.   

    先弄明白瓶颈在哪里然后再下手ASH报告看看高负荷时间段的系统运行状况CPU不够用的 买CPU 或者调SQL(表连接,解析(软硬))
    IO 不灵的(sequential read 查垃圾索引,scatter read 查全表扫描和INDEX_FFS)
    内存不够就买吧
    网络不灵基本上都是SQL NET的消息.分而治之.