搞了辣么多年DBA,总有点小东西可以分享下,技术又不好,就分享点脚本吧
该脚本比较简单,没有太多的附加参数,原因是受到了 "【Oracle 公益课堂 】Oracle 统计信息管理" 的影响。使用默认值它可以受益最大化(在较短的时间内收集较为全的信息)。
使用注意事项,尽量不要在业务高峰期操作,避免造成资源争用。
批量收集统计信息脚本:实现方法就是把表所属用户和表明查出来然后循环收集统计信息
begin
for tjxx in (select owner, table_name from dba_tables where table_name in ('TBA','TBB','TBC','TBD','TBE') and owner='USER') loop
begin
dbms_stats.gather_table_stats(ownname => tjxx.owner,
tabname => tjxx.table_name ,
degree => 8,
cascade => true);
end;
end loop;
end;
/
注意点:degree(并行度),根据服务器的CPU线程数和CPU的繁忙度自行更改,可以选择更多的并行来提高执行速度。
查看分析进度:就是查看需要收集表的最后分析时间
select owner, table_name,LAST_ANALYZED from dba_tables where table_name in ('TBA','TBB','TBC','TBD','TBE') and owner='USER'
总结:
我学的一般,希望各界大佬前来指点