事情:Oracle 10g标准版,项目运行一段时间后,速度变慢,表有索引。。
是否是因为索引碎片什么的问题导致变慢,有什么办法可以定期清理或者解决方案的?
请知情者提供线索,感谢。。

解决方案 »

  1.   

    另外,当用exp导出,再imp重新导入到新的实例中,速度就恢复正常,快很多。。
      

  2.   

    Oracle常用的管理操作都有哪些?比如需要过一段时间整理整理什么的操作
      

  3.   

    用AWR分析下数据库,看看有没有需要优化的地方:比如某些SQL 占用资源比较多。 表有索引,并不一定代表查询就会走索引, 最好看一下哪些占用资源较多的SQL的执行计划。 是否正真走了索引。 我们公司在系统升级之后,也出现查询慢的问题。 当时用的是IBM 的小型机, 不过性能更不上. SQL 优化之后,cpu 使用率还是很高. 最后不得已换成了dell 的R710.  ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716
      

  4.   


    从这个现象看很可能是你的相关的用户表中出现了行链接,行迁移。extents块比较小而且散。
    重新导入可以把以前的行链接、迁移去掉,而且去掉那些不连续的小块。出现的原因很可能是你的表insert,delete比较频繁,导致索引变动比较大,索引块中碎块较多。
    如果update比较多,那么行链接、行迁移也会很多。
      

  5.   

    有什么办法可以定期清理或者解决方案的?
    定期重新导入是个解决方法。如果数据量不大的情况下还是值得的。如果update 比较多。建表的时候是否可以增加些参数,比如说  pctfree, 这个设置大一点。
    如果是insert,delete比较多。那么可以选择online rebuild 索引。这样不影响现有查询走索引的情况下,让oracle对索引优化。
      

  6.   

    这方面我有一定的经验,我是管理电力的数据库系统,比如抄表数据,收费数据等都是几千万的数据,而且都是分区表,每月都是百万级增长,ORACLE查询数据都是通过优化策略来的,你要定期表分析,才能保证大表的速度。(最好一周一次)