Oracle数据库中索引的维护
2006-08-05 11:58:25 来源:WEB开发网set linesize 120
col "OWNER" format a20
col "INDEX" format a30
col "TABLE" format a30
col "TABLESPACE" format a30
select
i.owner "OWNER",
i.index_name "INDEX",
t.table_name "TABLE",
i.tablespace_name "TABLESPACE"
from
dba_indexes i,
dba_tables t
where i.owner=t.owner
and i.table_name=t.table_name
and i.tablespace_name=t.tablespace_name
and i.owner not in ('SYS','SYSTEM')
/
第三,查看数据表空间里有哪些索引
用户的默认表空间应该不是SYSTEM表空间,而是数据表空间。在建立索引时,如果不指定相应的索引表空间名,那么,该索引就会建立在数据表空间中。这是程序员经常忽略的一个问题。应该在建索引时,明确的指明相应的索引表空间。
col segment_name format a30
select
owner,
segment_name,
sum(bytes)
from dba_segments
where tablespace_name='数据表空间名'
and segment_type='INDEX'
group by owner,segment_name
/
第四,查看哪个索引被扩展了超过10次
随着表记录的增加,相应的索引也要增加。如果一个索引的next extent值设置不合理(太小),索引段的扩展变得很频繁。索引的extent太多,检索时的速度和效率就会降低。
set linesize 100
col owner format a10
col segment_name format a30
col tablespace_name format a30
select
count(*),
owner,
segment_name,
tablespace_name
from dba_extents
where segment_type='INDEX'
and owner not in ('SYS','SYSTEM')
group by owner,segment_name,tablespace_name
having count(*) >10
order by count(*) desc
/
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接