Oracle 表的移動和索引的重建
from:space.itpub.net/spacecp.php?action=spaceblogs&op=add
Oracle 表的移動和索引的重建
緣起一個表空間太大,刪除資料後由於檔案尾被用,無法resize,打算把所有表空間上的物件move到一個臨時儲存的表空間做整理。
move一個表到另外一個表空間時,索引不會跟著一起move,而且會失效。(LOB型別例外)表move,我們分為:
*普通表move
*分割槽表move
*LONG,LOB大欄位型別move來進行測試和說明。
索引的move,我們透過rebuild來實現
SQL> select * from v$version;
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
一:move普通表、索引基本語法:
alter table tab_name move tablespace tbs_name;
move過的普通表,在不用到失效的索引的操作語句中,語句執行正常,但如果操作的語句用到了索引(主鍵當做唯一索引),則此時報告用到
的索引失效,語句執行失敗,其他如外來鍵,非空約束,預設值等不會失效。
我們需要重新建立主鍵或索引,基本語法為:
alter index index_name rebuild;
alter index pk_name rebuild;
如果我們需要move索引,則使用rebuild語法:
alter index index_name rebuild tablespace tbs_name;
alter index pk_name rebuild tablespace tbs_name;
提示:查詢表所具有的索引,可以使用user_indexes檢視(索引和主鍵都在這個檢視裡可找到)。
二:move分割槽表及索引和普通表一樣,索引會失效,區別的僅僅是語法而已。
分割槽基本語法:特別提醒注意,如果是單級分割槽,則使用關鍵字PARTITION,如果是多級分割槽,則使用SUBPARTITION替代PARTITION。如果分割槽或分割槽索引比較大,可以使用並行move或rebuild,PARALLEL (DEGREE 2);如:
ALTER TABLE PART_ALARMTEXTDATA move SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);
ALTER INDEX GLOBAL_ALARMTEXTDATA REBUILD tablespace users PARALLEL (DEGREE 2);
ALTER INDEX LOCAL_ALARMTEXTDATA REBUILD SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);
移動表的某個分割槽:
================
ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name;
重建全域性索引:
================
ALTER INDEX global_index REBUILD;或
ALTER INDEX global_index REBUILD tablespace tbs_name; ......
move一個表到另外一個表空間時,索引不會跟著一起move,而且會失效。(LOB型別例外)表move,我們分為:
*普通表move
*分割槽表move
*LONG,LOB大欄位型別move來進行測試和說明。
索引的move,我們透過rebuild來實現
SQL> select * from v$version;
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
一:move普通表、索引基本語法:
alter table tab_name move tablespace tbs_name;
move過的普通表,在不用到失效的索引的操作語句中,語句執行正常,但如果操作的語句用到了索引(主鍵當做唯一索引),則此時報告用到
的索引失效,語句執行失敗,其他如外來鍵,非空約束,預設值等不會失效。
我們需要重新建立主鍵或索引,基本語法為:
alter index index_name rebuild;
alter index pk_name rebuild;
如果我們需要move索引,則使用rebuild語法:
alter index index_name rebuild tablespace tbs_name;
alter index pk_name rebuild tablespace tbs_name;
提示:查詢表所具有的索引,可以使用user_indexes檢視(索引和主鍵都在這個檢視裡可找到)。
二:move分割槽表及索引和普通表一樣,索引會失效,區別的僅僅是語法而已。
分割槽基本語法:特別提醒注意,如果是單級分割槽,則使用關鍵字PARTITION,如果是多級分割槽,則使用SUBPARTITION替代PARTITION。如果分割槽或分割槽索引比較大,可以使用並行move或rebuild,PARALLEL (DEGREE 2);如:
ALTER TABLE PART_ALARMTEXTDATA move SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);
ALTER INDEX GLOBAL_ALARMTEXTDATA REBUILD tablespace users PARALLEL (DEGREE 2);
ALTER INDEX LOCAL_ALARMTEXTDATA REBUILD SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2);
移動表的某個分割槽:
================
ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name;
重建全域性索引:
================
ALTER INDEX global_index REBUILD;或
ALTER INDEX global_index REBUILD tablespace tbs_name; ......
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-759882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle表與索引的分析及索引重建Oracle索引
- Oracle表與索引的分析及索引重建(轉)Oracle索引
- 關於 Oracle 分割槽索引的失效和重建Oracle索引
- oracle重建索引Oracle索引
- 移動 oracle object 到新的表空間(表,索引,分割槽,LOB)OracleObject索引
- oracle 索引分析及索引重建Oracle索引
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- oracle重建索引(二)Oracle索引
- Oracle中表空間、表、索引的遷移Oracle索引
- Oracle堆組織表的索引和索引組織表Oracle索引
- oracle批量重建索引方法Oracle索引
- 索引的重建命令索引
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- ORACLE分析表和索引的指令碼Oracle索引指令碼
- Oracle表table與索引index的分析及索引重建及統計資訊匯入匯出Oracle索引Index
- oracle 索引重建提示指令碼Oracle索引指令碼
- 【TUNE_ORACLE】索引定期重建的利與弊Oracle索引
- oracle 表分析和索引Oracle索引
- oracle 臨時表間重建的方法Oracle
- 【索引】分割槽表索引重建過程的10704事件跟蹤索引事件
- 淺談oracle中重建索引 (ZT)Oracle索引
- 關於oracle的索引重建問題及原因分析Oracle索引
- oracle清理和重建臨時表空間Oracle
- 各版本資料庫重建索引後是否自動分析表和索引9i+10g+11g資料庫索引
- sqlserver索引重建和索引重組的區別和操作方法SQLServer索引
- oracle 索引什麼時候重建和重建方法討論Oracle索引
- Oracle表移動表空間Oracle
- oracle 表移動表空間Oracle
- Oracle中重建表的線上重定義Oracle
- oracle重建索引的一些參考性依據Oracle索引
- 移動LOB型別的索引型別索引
- Import表的重建Import
- 索引重建的資料來源索引
- Oracle如何預估將要建立的索引和表的大小Oracle索引
- oracle重建UNDO表空間Oracle
- Oracle中重建表分割槽Oracle
- Oracle 找出需要建立索引的表Oracle索引