更新时间: 2013年7月13日10:27:26作者:
Oracle不能区分表空间中的表和索引. 当数据量较小时oracle中表的索引,可以将表和索引放在相同的表空间中,但是随着数据量的增加,最好还是将表和索引分别存储在不同的表空间中
因为:
1)提高性能: 尝试将表和索引的表空间存储在不同的磁盘上,并分离具有不同IO属性的两种类型的数据,这样可以提高磁盘IO的整体性能;
2)易于管理: 想象一下如果索引的数据文件损坏了,只创建索引就不会造成数据丢失的问题.
以下语句用于移动索引表空间:
复制代码,代码如下:
更改索引INDEX_OWNER.INDEX_NAME重建表空间NEW_TBS;
您还可以使用以下语句在模式下获取移动索引表空间的所有语句:
复制代码,代码如下:
选择“更改索引” ||所有者|| '. ' || index_name || '重建表空间NEW_TBS;'
来自dba_indexes
其中table_owner ='SCHEMA_NAME'
按索引名称排序;
要注意的一件事是,一旦将表和索引放置在不同的表空间中,则在创建新表时,如果表具有主键或唯一约束,请记住为索引指定表空间,可以请参考以下示例:
复制代码,代码如下:
创建表tmp(
MON VARCHAR2(6),
IDNO VARCHAR2(10)oracle中表的索引,
约束pk_name主键(MON,IDNO)
使用索引表空间index_tbs,
CONSTRAINT uk_name唯一(MON)
使用索引表空间index_tbs
);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-195689-1.html
去努力
爱你