DBMS_SPACE_ADMIN 11G增加
11G的DBMS_SPACE_ADMIN包比10g的多出來兩個procedure
DROP_EMPTY_SEGMENTS --把空物件分配的空間刪除
MATERIALIZE_DEFERRED_SEGMENTS --給空物件分配初始空間
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
SQL> create table t (id number primary key); --建表
Table created.
SQL> insert into t values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> select index_name from user_indexes where table_name='T';
INDEX_NAME
------------------------------
SYS_C0011492
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name in ('T','SYS_C0011492');
SEGMENT_NAME
--------------------------------------------------------------------------------
BYTES/1024/1024
---------------
T
.0625
SYS_C0011492
.0625
SQL> col segment_name format a30
SQL> /
SEGMENT_NAME BYTES/1024/1024 --插入值之後有空間分配
------------------------------ ---------------
T .0625
SYS_C0011492 .0625
SQL> exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS ('SONG','T');
BEGIN DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS ('SONG','T'); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_SPACE_ADMIN' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> exec SYS.DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS ('SONG','T');
BEGIN SYS.DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS ('SONG','T'); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SYS.DBMS_SPACE_ADMIN' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> conn /as sysdba
Connected.
SQL> grant execute on DBMS_SPACE_ADMIN to song;
Grant succeeded.
SQL> conn song/song
Connected.
SQL> delete from t;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name in ('T','SYS_C0011492'); --delete記錄之後,還是佔有空間
SEGMENT_NAME BYTES/1024/1024
------------------------------ ---------------
SYS_C0011492 .0625
T .0625
SQL> exec SYS.DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS ('SONG','T');
PL/SQL procedure successfully completed.
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name in ('T','SYS_C0011492'); --刪除空段之後 空間沒有了
no rows selected
SQL> exec SYS.DBMS_SPACE_ADMIN.MATERIALIZE_DEFERRED_SEGMENTS ('SONG','T');
PL/SQL procedure successfully completed.
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name in ('T','SYS_C0011492'); --分配空間之後,有空間了
SEGMENT_NAME BYTES/1024/1024
------------------------------ ---------------
SYS_C0011492 .0625
T .0625
by song
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-773320/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 11g增加業務profileOracle
- Oracle 11g 鎖特性增加Oracle
- 測試alter table storage及dbms_space_admin包
- 11g優化器增加Null aware anti join優化Null
- 11G RAC 為 ASM 磁碟組增加一個磁碟。(AIX)ASMAI
- Oracle 11g 鎖特性增加(引數ddl_lock_time)Oracle
- ORACLE 11G RAC 增加日誌組及增大日誌檔案Oracle
- [20170703]11g增加欄位與查詢條件的變化
- 11g檢視dba_objects中增加了1個有用的欄位namespaceObjectnamespace
- Oracle 11g DataGuard增加standby日誌組報錯"ORA-01156: recovery or flashback"Oracle
- Oracle 11g比10g及以前 增加列,並帶預設值的新特性Oracle
- 增加想法
- 11g檢視dba_segments中增加了一個有用的segment_subtype欄位!
- Vm 增加硬碟硬碟
- 增加LVMLVM
- ASM 增加磁碟ASM
- ORACLE 11G 擴充套件表空間增加資料檔案導致DG日誌應用失敗Oracle套件
- oracle rac 增加磁碟Oracle
- Mysql增加節點MySql
- RAC 增加SCAN IP
- 頁面增加CookieCookie
- sqlldr增加判斷。SQL
- Linux增加磁碟Linux
- xlua - 增加protobuf庫
- 增加成本類科目時,忘了增加成本要素處理方法
- 為ExecutorService增加shutdown hookHook
- 增加oracle表空間Oracle
- 【Nginx】Openresty增加waf配置NginxREST
- EF 批量增加問題
- CloudFoundry增加自定義serviceCloud
- 增加連線數processes
- 7.增加日誌
- javascript 日期 增加天數JavaScript
- solaris 下增加新硬碟硬碟
- linux 增加swap大小!Linux
- suse 增加虛擬ip
- Oracle 增加 修改 刪除 列Oracle
- Ubuntu 增加埠訪問控制Ubuntu