Oracle11gr2不可用索引不佔用空間
在11gr2中,對於不可用索引,Oracle會自動將對應的資料段釋放,避免不可用的索引佔用空間。
首先看看10g下的情況:
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> CREATE TABLE T_INDEX
2 AS SELECT * FROM DBA_OBJECTS;
Table created.
SQL> CREATE INDEX IND_T_INDEX_NAME
2 ON T_INDEX(OBJECT_NAME);
Index created.
SQL> SELECT SEGMENT_NAME, BYTES/1024
2 FROM USER_SEGMENTS
3 WHERE SEGMENT_NAME = 'IND_T_INDEX_NAME';
SEGMENT_NAME BYTES/1024
------------------------------ ----------
IND_T_INDEX_NAME 3072
SQL> ALTER INDEX IND_T_INDEX_NAME UNUSABLE;
Index altered.
SQL> SELECT SEGMENT_NAME, BYTES/1024
2 FROM USER_SEGMENTS
3 WHERE SEGMENT_NAME = 'IND_T_INDEX_NAME';
SEGMENT_NAME BYTES/1024
------------------------------ ----------
IND_T_INDEX_NAME 3072
即使索引被置於不可用狀態,索引段仍然存在。
下面看看11gr2環境下的情況:
SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> CREATE TABLE T_INDEX
2 AS SELECT * FROM DBA_OBJECTS;
表已建立。
SQL> CREATE INDEX IND_T_INDEX_NAME
2 ON T_INDEX(OBJECT_NAME);
索引已建立。
SQL> SELECT SEGMENT_NAME, BYTES/1024
2 FROM USER_SEGMENTS
3 WHERE SEGMENT_NAME = 'IND_T_INDEX_NAME';
SEGMENT_NAME BYTES/1024
------------------------------ ----------
IND_T_INDEX_NAME 3072
SQL> ALTER INDEX IND_T_INDEX_NAME UNUSABLE;
索引已更改。
SQL> SELECT SEGMENT_NAME, BYTES/1024
2 FROM USER_SEGMENTS
3 WHERE SEGMENT_NAME = 'IND_T_INDEX_NAME';
未選定行
正如文章開頭介紹的,在11.2中,如果索引被至於UNUSABLE狀態,則資料庫會自動將索引對應的段釋放,避免不可用的索引還佔有資料檔案空間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-624776/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mac怎麼徹底刪除檔案不佔用空間Mac
- undo表空間佔用磁碟空間滿案例處理
- 如何使Xcode佔用更少的空間 Xcode佔用空間太大解決方法XCode
- MacPro系統佔用空間太大Mac
- AWR佔用sysaux表空間太大UX
- Oracle檢視物件佔用空間Oracle物件
- 檢視佔用磁碟空間的程式
- 空間索引 - 各資料庫空間索引使用報告索引資料庫
- 深入淺出空間索引:為什麼需要空間索引索引
- 【SQLServer】Tempdb空間異常增長,空間佔用非常大SQLServer
- MySQL索引之空間索引(SPATIAL)MySql索引
- CSS3 box-shadow 不佔據空間CSSS3
- 資料夾不見了,但還佔據空間
- SQL Server 檢視錶佔用空間大小SQLServer
- linux檢視mysql佔用磁碟空間LinuxMySql
- CSS3 box-shadow不會佔據空間CSSS3
- 透過空間佔用和執行計劃瞭解SQL Server的行儲存索引SQLServer索引
- PostgreSQL DBA(190) - 行大小和空間佔用SQL
- 去除Windows7系統佔用空間因素Windows
- oracle 檢視錶所佔用的空間大小Oracle
- MYSQL造資料佔用臨時表空間MySql
- oracle查詢表空間的空間佔用情況Oracle
- win7系統空間佔用大是怎麼回事?win7系統空間佔用大的清理步驟Win7
- 解決Ubuntu虛擬機器佔用空間與實際空間不符問題Ubuntu虛擬機
- 檢視資料庫佔用磁碟空間的方法資料庫
- PHP陣列到底佔用多少記憶體空間PHP陣列記憶體
- 乾貨|Linux中限制目錄佔用空間Linux
- linux下找出佔用空間最大的目錄Linux
- 計算一個表佔用的空間的大小
- 深入淺出空間索引:2索引
- Centos Linux 清理磁碟佔用空間:/dev/xvda1CentOSLinuxdev
- Oracle審計--AUD$佔用空間較大處理方案Oracle
- linux查詢佔用空間較大的檔案Linux
- 檢視一個User所有物件佔用的空間大小物件
- Oracle的home目錄空間佔用異常處理Oracle
- 檢視ELF中資料段哪些變數佔用空間變數
- oracle 日誌檔案佔空間Oracle
- 批量重建不可用索引索引