Oracle表移動後應該做哪些事情?
導讀 | 移動一張表實際上是一個重組過程,資料庫會將原來的資料複製到新的地方。但是如果你發現這個表在移動後效能下降了,可能是你的索引沒有重建。本文將指導您找到依賴索引並重建它們。 |
概述
移動一張表實際上是一個重組過程,資料庫會將原來的資料複製到新的地方。但是如果你發現這個表在移動後效能下降了,可能是你的索引沒有重建。本文將指導您找到依賴索引並重建它們。
將表從示例移動到使用者
SQL> select tablespace_name from dba_tables where owner = 'HR' and table_name = 'EMPLOYEES'; TABLESPACE_NAME ------------------------------ EXAMPLE SQL> alter table hr.employees move tablespace users; Table altered. SQL> select tablespace_name from dba_tables where owner = 'HR' and table_name = 'EMPLOYEES'; TABLESPACE_NAME ------------------------------ USERS
檢視哪些索引取決於此表
SQL> column index_name format a30; SQL> column tablespace_name format a30; SQL> column status format a10; SQL> select index_name, tablespace_name, status from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; INDEX_NAME TABLESPACE_NAME STATUS ------------------------------ ------------------------------ ---------- EMP_JOB_IX EXAMPLE UNUSABLE EMP_DEPARTMENT_IX EXAMPLE UNUSABLE EMP_MANAGER_IX EXAMPLE UNUSABLE EMP_NAME_IX EXAMPLE UNUSABLE EMP_EMAIL_UK EXAMPLE UNUSABLE EMP_EMP_ID_PK EXAMPLE UNUSABLE 6 rows selected.
如您所見,所有依賴索引都是UNUSABLE。這意味著,資料庫不會自動重建它們。你必須自己做。
編寫所有重建語句,然後執行它們
SQL> select 'alter index ' || owner || '.' ||index_name || ' rebuild tablespace users;' as SQL_TO_BE_EXECUTED from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; SQL_TO_BE_EXECUTED -------------------------------------------------------------------------------- alter index EMP_JOB_IX rebuild tablespace users; alter index EMP_DEPARTMENT_IX rebuild tablespace users; alter index EMP_MANAGER_IX rebuild tablespace users; alter index EMP_NAME_IX rebuild tablespace users; alter index EMP_EMAIL_UK rebuild tablespace users; alter index EMP_EMP_ID_PK rebuild tablespace users; 6 rows selected.
或者您可以重建原始表空間的索引。
SQL> select 'alter index ' || owner || '.' ||index_name || ' rebuild tablespace ' || tablespace_name || ';' as SQL_TO_BE_EXECUTED from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; SQL_TO_BE_EXECUTED -------------------------------------------------------------------------------- alter index HR.EMP_DEPARTMENT_IX rebuild tablespace EXAMPLE; alter index HR.EMP_NAME_IX rebuild tablespace EXAMPLE; alter index HR.EMP_MANAGER_IX rebuild tablespace EXAMPLE; alter index HR.EMP_EMP_ID_PK rebuild tablespace EXAMPLE; alter index HR.EMP_EMAIL_UK rebuild tablespace EXAMPLE; alter index HR.EMP_JOB_IX rebuild tablespace EXAMPLE; 6 rows selected.
請注意,我們在新表空間USERS中重建索引。也就是說,對於索引,REBUILD相當於表中的MOVE
重建後檢查狀態
SQL> select index_name, tablespace_name, status from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; INDEX_NAME TABLESPACE_NAME STATUS ------------------------------ ------------------------------ ---------- EMP_JOB_IX USERS VALID EMP_DEPARTMENT_IX USERS VALID EMP_MANAGER_IX USERS VALID EMP_NAME_IX USERS VALID EMP_EMAIL_UK USERS VALID EMP_EMP_ID_PK USERS VALID 6 rows selected.
所有索引都變為VALID,表明所重建的索引有效。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2901342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 表移動表空間Oracle
- Oracle表移動表空間Oracle
- 測試Leader應該做哪些事?
- 拼多多門檻低的活動有哪些?應該怎麼做?
- 後端開發者從零做一個移動應用(一)後端
- 關於 jwt 你應該知道的事情JWT
- 遷移學習:該做的和不該做的事遷移學習
- 遊戲應該讓玩家主動移動嗎遊戲
- 為什麼要學Python?Python可做哪些事情?Python
- 移動CRM都有哪些應用場景?
- 移動應用測試有哪些測試型別?權威的移動app測試報告該如何獲取?型別APP測試報告
- 不要用100vh做移動響應
- 移動應用後臺不是技術專屬,運營也該用到飛起
- 關於字元編碼你應該知道的事情字元
- 可以用 Python 程式語言做哪些神奇好玩的事情?Python
- 為什麼要選擇學Python?Python可做哪些事情?Python
- 牆面互動投影應用到展館應該怎麼做
- 哪些情況應該廢標,廢標後如何處理
- 【譯】關於JavaScript 陣列你應該知道的事情JavaScript陣列
- 找工作時,我們應該思考的幾件事情。
- 移動端框架如雨後春筍,你該如何選擇?框架
- 擁有一臺RAKsmart伺服器可以做哪些很酷的事情?伺服器
- 【譯】關於 JavaScript 的原型你應該知道的所有事情JavaScript原型
- 做一個跑通前後端的`豆瓣租房`移動端webApp後端WebAPP
- 【效能】Oracle表並行對邏輯遷移後查詢效能的影響Oracle並行
- Oracle中表空間、表、索引的遷移Oracle索引
- 【STATS】Oracle遷移表統計資訊Oracle
- Ubuntu 中的 root 使用者:你應該知道的重要事情Ubuntu
- 有哪些事情是程式設計 20 到 50 多年後才知道的?程式設計
- 學完Python後可以做哪些工作呢?Python
- 核心介面隔離,要做哪些事情?
- 應屆生職場規劃應該怎麼做?
- 計劃做點事情-還是跳槽
- Oracle 12.2應用PSU後資料庫無法啟動Oracle資料庫
- Oracle 12cbigfile表空間物件遷移Oracle物件
- thinkphp做的全棧移動商城!PHP全棧
- 6 件你應該用 Emacs 做的事Mac
- 新站SEO推廣應該怎麼做呢?