Oracle SQL调优,系统调优尽量是在线调节。因为调优对场景依赖性很强,把生产库上的数据搬到测试环境上,好多环境都改变了,导致调优方案和结果不准确。

比如:硬件不同,导入导出后,表的碎片,索引碎片,表分析时间都不同,数据访问频度不同。

Oracle SQL调优笔记若碰到SQL的性能问题,比如:执行计划发生改变了

  首先考虑的是:

 a:对涉及到的表做move,减少碎片

 b:对move过的表做索引重建

 c:对表做表分析

 比如:exec dbms_stats.gather_schema_stats(ownname=>'BOMUSER',options=>'gather auto');手动统计bomuser所有表,收集统计信息,

收集表的统计信息:

begin 

dbms_stats.gather_table_stats 

('SCOTT','T',

method_opt => 'for all columns size  AUTO',

cascade => TRUE );

end;

 

在收集统计信息时,oracle OCM建议使用 dbms_stats.gather_table_stats取代analyze table,特别是对于分区表,analyze收集的全局统计信息有时候是不准确的(因为它是累计的)。dbms_stats与analyze在很多方面都有区别。

  d:然后再具体的调节SQL。