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。