生产环境上的数据库经常要手工更新统计信息,表非常多,要除去备份表(备份表通常会加上bak或是日期)。
EAM : 数据库用户名
degree: 并行度,加快收集时间,我的数据库是12核,所以设置24
cascade :连同索引一起更新
select 'execute dbms_stats.gather_table_stats(''EAM'',''' || s.table_name ||''',degree => 24,cascade => true);'
from user_tables s
where not regexp_like(s.TABLE_NAME, '[0-9]{4,8}')
and s.table_name not like '%BAK%';