【问题描述】
Oracle数据库如何更新统计信息?
【概述】
请在Oracle数据库里面执行如下语句:
declare v_table_name varchar(255):='';
v_index_name varchar(255):='';
cursor cur_tb is select table_name from user_tables where table_name NOT like 'Z_%' AND table_name NOT like 'TMP_%' ;
begin
--2.打开游标cur_stu
open cur_tb;
fetch cur_tb into v_table_name;
loop
--如果游标cur_stu所指还有数据行
if cur_tb%found then
--3.将游标的当前行取出存放到变量中
begin
execute immediate 'analyze table '|| v_table_name||' compute statistics';
--execute immediate 'alter index '|| v_index_name||' rebuild';
exception
when others then
dbms_output.put_line('分析表异常:'||sqlerrm);
end;
fetch cur_tb into v_table_name;
else
exit;
end if;
end loop;
close cur_tb; --4.关闭游标
end;