WEB开发网
开发学院数据库Oracle 关于Oracle数据库中索引的维护经验谈 阅读

关于Oracle数据库中索引的维护经验谈

 2007-05-12 12:25:31 来源:WEB开发网   
核心提示: 第二,确保用户的表和索引不在同一表空间内,关于Oracle数据库中索引的维护经验谈(5),表和索引对象的第一个规则是把表和索引分离,把表和相应的索引建立在不同的表空间中,索引段的扩展变得很频繁,索引的extent太多,最好在不同的磁盘上,这样可以避免在数据管理和查询时出现的许多I/O冲突

第二,确保用户的表和索引不在同一表空间内。

表和索引对象的第一个规则是把表和索引分离。把表和相应的索引建立在不同的表空间中,最好在不同的磁盘上。这样可以避免在数据管理和查询时出现的许多I/O冲突。  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太多,检索时的速度和效率就会降低。

上一页  1 2 3 4 5 

Tags:关于 Oracle 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接