оракул 10г
先建立个统计表
создать таблицу T_ANALYZ_MONITOR_INDEX
(
F_INDEX_NAME VARCHAR2(50),
F_DEL_LF_ROWS НОМЕР,
F_LF_ROWS НОМЕР,
F_RATE НОМЕР(4,2),
F_MONITOR_DATE DATE системная дата по умолчанию не равна нулю
);
再建个历史表
создайте таблицу t_analyz_index_stats как выберите * из index_stats
做个分析过程 查出表并且 分析 插入历史表 统计删除比率到 统计表
создать или заменить процедуру P_ANALYZ_DAY_INDEX_SATAS
v_sql varchar2 (100);
Начинать
для цикла in (выберите INDEX_NAME из User_Indexes, где index_type<>'LOB')
v_sql := 'анализировать индекс' || a.index_name || 'проверить структуру';
немедленно выполнить v_sql;
Вставить в T_ANALYZ_INDEX_STATS
Выберите * Из Index_Stats;
вставить в T_ANALYZ_MONITOR_INDEX(F_INDEX_NAME, F_DEL_LF_ROWS, F_LF_ROWS, F_RATE)
выберите имя,del_lf_rows,lf_rows, round(del_lf_rows * 100 / decode((lf_rows + del_lf_rows),0,1), 2)
из index_stats;
Конец цикла;
конец;
注意所查到的索引是在同个用户名下的
Файл CSDN-файла, файл CSDN-файла: http://blog.csdn.net/ZengMuAnSha/archive/2009/12/30/5107740.aspx