dbms_ddl.analyze_object这个方法可以分析数据表,并且将存储结果存储起来,对于SQL的运行效率有较大的提升
语法如下:
dbms_ddl.analyze_object(
type varchar2,
schema varchar2,
name varchar2,
method varchar2,
estimate_rows number,
estimate_percent number
)
具体的参数说明:
type 处理对象的类型,例如表,簇,索引,如果都不是,引发错误ora-20001
schema 对象模式,null表示当前模式,注意大小写有区分,一般是用户名表示
name 分析的对象名
method 分析方法,包括estimate,compute或delete
estimate_rows 采样样本的记录行数(样本大小)
estimate_percent 样本所占比例
method_opt 选项方法
partname 采样分析去名称
但是运行这个比较麻烦,用job自动实现比较方便
variable jobno number;
begin
dbms_job.submit(:jobno,'dbms_ddl.analyze_object(''table'',''dquon'',''accounts'',''estimate'',null,50);',sysdate,'sysdate+1');
commit;
end;
/