Oracle 把錶和索引放在不同的表空間裡

2022-04-08 19:39:54 字數 961 閱讀 1601

[oracle]把錶和索引放在不同的表空間裡

oracle中並沒有區分表空間裡放的是表還是索引,所有當資料量比較小時,完全可以把錶和索引放在同乙個表空間裡,但隨著資料量的增大,最好還是把錶和索引分開儲存在不同的表空間裡,因為:

1)提高效能:盡量把錶和索引的表空間儲存在不同在磁碟上,把兩類不同io性質的資料分開放,這樣可以提高磁碟的io總體效能;

2)便於管理:試想一下,如果索引的資料檔案損壞,只要建立索引即可,不會引起資料丟失的問題。

下面語句用於移動索引的表空間:

[sql]

alter index index_owner.index_name rebuild tablespace new_tbs;

也可以利用以下語句獲得某個schema下移動索引表空間的所有語句:

[sql]

select 'alter index '||owner||'.'||index_name||' rebuild tablespace new_tbs;'

from dba_indexes

where table_owner='schema_name'

order by index_name;

有一點需要注意的是,一旦把錶和索引放在不同表空間後,在建立新錶時,如果表有主鍵或唯一約束,記得要指定到索引的表空間,可以參考下面的例子:

[sql]

create table tmp(

mon varchar2(6) ,

idno varchar2(10) ,

constraint pk_name primary key ( mon, idno )

using index tablespace index_tbs,

constraint uk_name unique (mon)

using index tablespace index_tbs

) ;

Oracle中如何把錶和索引放在不同的表空間裡

因為 1 提高效能 盡量把錶和索引的表空間儲存在不同在磁碟上,把兩類不同io性質的資料分開放,這樣可以提高磁碟的io總體效能 2 便於管理 試想一下,如果索引的資料檔案損壞,只要建立索引即可,不會引起資料丟失的問題。下面語句用於移動索引的表空間 複製 yguifpe 如下 alter index i...

Oracle表和索引移動表空間

來自 http blog.csdn.net m changgong 作者 張燕廣 關鍵字 oracle 表空間 移動表空間 對錶進行表空間移動操作 如果有一張表 accounts 存放在表空間 example 下現在要把表 accounts 移動到表空間 demo 下,該怎麼操作?操作語句如下 al...

ORACLE 表和索引遷移表空間

表做空間遷移時,使用如下語句 例1 alter table tb name move tablespace tbs name 索引表空間做遷移,使用如下語句 例2 alter index index name rebuild tablespace tbs name 對於含有lob欄位的表,在建立時,...