dbms_stats包:
用于搜集,修改,查看数据库对象的优化统计信息;
–1,get_column_stats
/*
该过程用于返回列的统计信息;
输出消息{
distcnt =>返回不同值得个数,
density => 返回列的密度,
nullcnt => null值个数,
srec => 返回最大,最小和直方位图,
avgclen => 返回列的平均长度
}
*/
dbms_stats.get_column_stats(
ownname => ,
tabname => ,
colname => ,
partname => ,
stattab => , –指定用户的统计表名
statid => , –与统计相关的标示符
distcnt => ,density => ,nullcnt => ,srec => ,avgclen =>
);
declare
distcnt number;
density number;
nullcnt number;
srec dbms_stats.StatRec;
avgclen number;
begin
dbms_stats.get_column_stats(‘SCOTT’,’EMP’,’JOB’,
distcnt => distcnt,
density => density,
nullcnt => nullcnt,
srec =>srec,
avgclen=>avgclen
);
dbms_output.put_line(‘列平均’ || avgclen);
dbms_output.put_line(‘列不同值’ || distcnt);
end;
–2,get_index_stats
/*
取得索引的统计信息
返回 {
numrows => ,行数
numlblks => ,块数
numdist => ,
avglblk => ,
avgdblk => ,
clstfct => ,
indlevel =>返回索引层数
}
*/
dbms_stats.get_index_stats(
ownname => ,indname => ,partname => ,stattab => ,statid => ,
numrows => ,
numlblks => ,
numdist => ,
avglblk => ,
avgdblk => ,
clstfct => ,
indlevel =>
);
–3,get_system_stas
/*
该过程用于从统计表或数据字典取得系统的统计信息;
status => 返回状态,
dstart =>开始搜索时间 ,
dstop =>结束搜索时间 ,
pname =>in 要取得的参数名,
pvalue => 返回参数值
*/
dbms_stats.get_system_stats(status => ,dstart => ,dstop => ,pname =>in ,pvalue => );
–4,get_table_stas
/*
该过程用于表的统计信息
numrows => 表的总计行数,
numblks => 表的总计块数,
avgrlen => 表行的平均长度;
*/
dbms_stats.get_table_stats(,ownname => ,tabname => ,partname => ,stattab => ,statid => ,
numrows => ,
numblks => ,
avgrlen =>
);
declare
numrows number ;
numblks number ;
avgrlen number ;
begin
dbms_stats.get_table_stats(‘SCOTT’,’EMP’,
numrows => numrows,
numblks => numblks,
avgrlen =>avgrlen
);
dbms_output.put_line(‘总共的行数’ || numrows);
dbms_output.put_line(‘总共的块数’ || numblks);
dbms_output.put_line(‘平均的行数’ || avgrlen);
end;
–5,delete_column_stats
/*
该过程用于列的统计信息
no_invalidate –指定是否要使用相关的游标无效;
*/
dbms_stats.delete_column_stats(
ownname => ,tabname => ,colname => ,
partname => ,stattab => ,statid =>,
cascade_parts => ,no_invalidate =>
);
–6,delete_index_stats
/*
该过程用于删除索引的统计信息
no_invalidate –指定是否要使用相关的游标无效;
*/
dbms_stats.delete_index_stats(
ownname =>,indname => ,partname => ,stattab => ,statid => ,
cascade_parts => ,no_invalidate =>
);
–7,delete_system_stats
/*
该过程用于删除系统的统计信息
*/
dbms_stats.delete_system_stats(stattab => ,statid => );
–8,delete_table_stats
/*
该过程用于删除表的统计信息
*/
dbms_stats.delete_table_stats(
ownname => ,tabname => ,partname => ,
stattab => ,statid => ,
cascade_parts => ,cascade_columns => ,cascade_indexes => ,
no_invalidate =>
);
–9,delete_schema_stats
/*
用于删除特定方案的统计信息
*/
dbms_stats.delete_schema_stats(ownname => ,stattab => ,statid => ,no_invalidate => );
–10,delete_database_stats
/*
该过程用于删除整个数据库的统计信息
*/
dbms_stats.delete_database_stats();
–11,create_stat_table
/*
该过程用于给特定的方案创建统计表
*/
dbms_stats.create_stat_table(ownname => ,stattab => );
–12,drop_stat_table
/*
该过程用于删除特定方案的统计表
*/
dbms_stats.drop_stat_table(ownname => ,stattab => );
–13,export_column_stats
/*
该过程用于导出列统计,并存储到统计表中
*/
dbms_stats.export_column_stats(
ownname => ,tabname => ,colname => ,partname => ,
stattab =>(in) ,statid =>
);
–14,export_index_stats
/*
该过程用于导出索引统计信息,并存储到统计表中
*/
dbms_stats.export_index_stats(
ownname => ,indname =>,partname => ,
stattab =>(in) ,statid =>
);
–15,export_system_stats
/*
该过程用于导出系统的统计信息,并转存到统计表中
*/
dbms_stats.export_system_stats(
stattab => ,statid =>
);
–16,export_table_stats
/*
该过程用于导出表的统计信息,并转存到统计表中
*/
dbms_stats.export_table_stats(
ownname => ,tabname => ,partname => ,
stattab => ,statid =>
);
–17.export_schema_stats
/*
该过程用于导出方案的统计信息,并转存到统计表中
*/
dbms_stats.export_schema_stats(
ownname => ,stattab =>
);
–18.export_database_stats
/*
该过程用于导出数据库的统计信息,并转存到统计表中
*/
dbms_stats.export_database_stats(stattab => ,statid => );
–19,import_column_stats
/*
从统计表中取出列的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_column_stats(
ownname => ,tabname => ,
colname => ,partname => ,stattab => ,statid => );
–20,import_index_stats
/*
从统计表中取出索引的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_index_stats(
ownname => ,indname => ,partname => ,
stattab => ,statid =>
);
–21.import_system_stats
/*
从统计表中取出系统的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_system_stats(
stattab => ,statid =>
);
–22,import_database_stats
/*
从统计表中取出数据库的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_database_stats(stattab => ,statid => );
–23,import_table_stats
/*
从统计表中取出表的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_table_stats(ownname => ,tabname => ,partname => ,stattab => );
–24.import_schema_stats
/*
从统计表中取出方案的统计信息,并将其存储到数据字典中;
*/
dbms_stats.import_schema_stats(ownname => ,stattab => );
–25.gather_index_stats
/*
该过程用于搜索索引的统计信息
*/
dbms_stats.gather_index_stats(
ownname => ,indname => ,partname => ,
estimate_percent => ,stattab => ,statid =>
);
–26.gather_table_stats
/*
该过程用于搜索表的统计信息
*/
dbms_stats.gather_table_stats(
,ownname => ,tabname => ,
partname => ,estimate_percent => ,
block_sample => ,method_opt =>
);
–27. gather_schema_stats
/*
该过程用于搜索方案的统计信息
*/
dbms_stats.gather_schema_stats(
ownname => ,estimate_percent => ,
block_sample => ,method_opt =>
);
–28,gather_database_stats
/*
该过程用于搜索数据库所有对象的统计信息
*/
dbms_stats.gather_database_stats(estimate_percent => ,block_sample => ,method_opt => );
–29,gather_system_stats
/*
该过程用于搜索系统所有对象的统计信息
interval–搜索时间间隔
*/
dbms_stats.gather_system_stats(
gathering_mode => ,interval => ,stattab => ,statid =>
);