analyze可以对表和索引进行解析,会对oracle在为查询做计划时有用.
其它优化使用命令很难做到.

解决方案 »

  1.   

    Rebuild Indexes  
    如果表中记录频繁的被删除或插入,尽管表中的记录总量保持不变,索引空间的使用量会不断增加。虽然记录从索引中被删除,但是该记录索引项的使用空间不能被重新使用。因此,如果表变化不定,索引空间量会不断增加,不管表中记录数量是否增加——只仅仅是因为索引中无效空间量的增加。  
    要回收那些曾被删除记录使用的空间,需要使用alter index rebuild 命令。可以做一个定期运行的批处理程序,来重建最活动表的索引。这个批处理程序可以在空闲时运行,以避免程序与用户冲突。若能坚持索引的这一程序规划,便可以及时回收那些未使用空间,提高空间利用率。
    analyze表
    统计信息的生成可以有完全计算法和抽样估算法。SQL例句如下: 
    完全计算法: analyze table abc compute statistics; 
    抽样估算法(抽样20%): analyze table abc estimate statistics sample 20 percent; 
      

  2.   

    oracle9i 嵌入了hint指令
    可以在sql中指定执行方案,比如nest-loop等执行方式等
      

  3.   

    用分析表查看当前语句资源占用问题
    analyze table table_name compute statistics;
      

  4.   

    上面说得主要集中在DBA任务方面,有些偏颇!
    重建索引,分析表,都可以提高执行效率。但是有些时候,oracle的hint是一定要用的,因为Oracle的成本优化器还是又很多不尽人意的地方。有些时候一定要通过hint来提示oracle 如何优化!而且成本优化默认的目标是 all_rows (吞吐量),如果,相应时间是第一位的,要使用
    hint first_rows,如果,sql涉及的表你很熟悉,你可以使用rule,强制oracle使用规则优化,而这些都是oracle自动优化无法做的,至于别的,sql的优化实在是博大精深,我曾经开发过的一个国家重点项目就曾进又进一个月的数据库性能优化,这里面学问很多啊!
      

  5.   

    oracle的hint是一个命令,还是文件操作?我初次接触,能否讲详细点?谢谢!还有,有没有什么关于对单个表优化操作命令!不胜感激!
    我用analyze table abc compute statistics; 命令好像只是起到分析表的作用,我怎么对表进行优化?再给指点?
      

  6.   

    通过重构行来消除“碎片”数据并压缩信息,对表进行重组的命令.在oracle中用rebuild table 可以完成吗?谢谢!