分析索引的碎片

2021-08-24 22:55:33 字數 1016 閱讀 8105

oracle 10g

先建立個統計表

create table t_analyz_monitor_index

(f_index_name varchar2(50),

f_del_lf_rows number,

f_lf_rows number,

f_rate number(4,2),

f_monitor_date date default sysdate not null

);再建個歷史表

create table t_analyz_index_stats as select * from index_stats

做個分析過程 查出表並且 分析 插入歷史表 統計刪除比率到 統計表

create or replace procedure p_analyz_day_index_satas is

v_sql varchar2(100);

begin

for a in (select index_name from user_indexes where index_type<>'lob') loop

v_sql := ' analyze index ' || a.index_name || ' validate structure';

execute immediate v_sql;

insert into t_analyz_index_stats

select * from index_stats;

insert into t_analyz_monitor_index(f_index_name, f_del_lf_rows, f_lf_rows, f_rate)

select name,del_lf_rows,lf_rows, round(del_lf_rows * 100 / decode((lf_rows + del_lf_rows),0,1), 2)

from index_stats;

end loop;

end;

注意所查到的索引是在同個使用者名稱下的

關於索引碎片

整理表碎片.這個很多人都不知道,其實因為表的記錄數變多,在硬碟上佔的容量變大,所以會產生一定量的碎片.如果記錄多,表多的話,碎片也可能會增多.所以要定時的整理碎片.但這個碎片和一般的檔案碎片不一樣,sql server有專門的語句用於表碎片.下樓補上語句 首先,用下面的語句,檢查 修復資料庫 並整理...

Oracle 工具類 Sql 分析索引的 碎片率

cbo基於成本的優化器分析 分配合適的儲存桶 使用儲存過程dbms stats 1 索引分析 分析語句 sql analyze index validate structure online 分析表 analyze table tablename compute statistics analyze...

mysql索引碎片整理 MysqL碎片整理優化

先來說一下什麼是碎片,怎麼知道碎片有多大!簡單的說,刪除資料必然會在資料檔案中造成不連續的空白空間,而當插入資料時,這些空白空間則會被利用起來.於是造成了資料的儲存位置不連續,以及物理儲存順序與理論上的排序順序不同,這種是資料碎片.實際上資料碎片分為兩種,一種是單行資料碎片,另一種是多行資料碎片.前...