《Oracle系列》Oracle 索引使用情况查看
查询用户的索引
select index_name,table_name,tablespace_name,index_type,uniqueness,statusfrom dba_indexeswhere owner = '<用户名>';
查询用户的索引列
select index_name,table_name,column_name,index_owner,table_ownerfrom dba_ind_columnswhere table_owner = '<用户名>';
查看索引的各种初始化因子
select index_name,table_name,tablespace_name,pct_free,pct_increase,initial_extent,next_extent,statusfrom dba_indexeswhere owner = '<用户名>';
重建和维护索引
alter index scott.emp_ename_idx rebuild
pctfree 40
storage (next 300k);
查看索引segment
select segment_name, segment_type, tablespace_name, extentsfrom dba_segmentswhere owner = '<用户名>'and segment_type = 'INDEX';
给索引添加相应的extent
alter index scott.emp_ename_idx allocate extent;
回收索引端
alter index scott.emp_ename_idx deallocate unused;
合并索引碎片
alter index scott.emp_ename_idx coalesce;
联机重建索引
alter index scott.emp_ename_idx rebuild online;
标识索引的使用情况
1. 启用索引监控
alter index emp_ename_idx monitoring usage;
生成启用索引监控语句:
select 'alter index ' || owner || '.' || index_name || ' monitoring usage;'from dba_indexeswhere owner = '<用户名>';
2. 执行相关查询
select ename, job, salfrom scott.empwhere ename like 'C%';
3. 查看索引是否使用
select * from v$object_usage;
4. 禁用索引监控
alter index emp_ename_idx nomonitoring usage;
生成禁用索引监控语句:
select 'alter index ' || owner || '.' || index_name || ' nomonitoring usage;'from dba_indexeswhere owner = '<用户名>';