批量分析表的一段PL/Sql

ljm0211發表於2012-06-20
begin
for x in (select owner,table_name from dba_tables where blocks is null and owner in ('HR'))
loop
execute immediate 'begin DBMS_STATS.UNLOCK_TABLE_STATS('''||x.owner||''','''||x.table_name||''');end;';
execute immediate 'analyze table ' ||x.table_name||' compute statistics';
end loop;
end;
/
當然也可以使用dba_tables或user_tables構造出批量analyze語句指令碼,然後執行。
select 'analyze table ' ||table_name||' compute statistics;' from user_tables;
複製出查詢結果就是需要執行的指令碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733354/,如需轉載,請註明出處,否則將追究法律責任。

相關文章