10G新特性: 臨時表空間組(temporary tablespace group)
10G新特性: 臨時表空間組(temporary tablespace group)
Kevin Zou
2011-9-13
在生產環境上會遇到在一個DB裡有多個臨時表空間,不同的應用各自擁有專屬的臨時表空間;由於應用的特性,有的空間使用率很高,有的就很空閒,如何充分、平均使用的這些臨時表空間呢?
在10G,Oracle引入了一個新特性:臨時表空間組(temporary tablespace group)。當一個應用/SESSION有較多的排序需要用到臨時表空間時,那可以使用GROUP中其他的臨時表空間。
GROUP概念就是把具有相同屬性的東西放到一起。顧名思義:temporary tablespace group就是把系統的臨時表空間放到一起。
臨時表空間組至少有一個表空間,就像一個表空間至少有一個資料檔案,沒有上限;
臨時表空間組共享了表空間的名稱空間,就是說臨時表空間組不能和其他的表空間重名;
當為資料庫指定臨時表空間或為使用者指定臨時表空間時,可以使用臨時表空間組的名稱;
臨時表空間組無法顯式的建立,沒有相關的CREATE GROUP 命令:當第一個臨時表空間指定給它時則隱式建立,當最後一個臨時表空間移除時則隱式的被刪除;
任何一個臨時表空間可以從一個GROUP移到另外一個GROUP;從一個GROUP中移走; 如果臨時表空間不屬於任何一個臨時表空間組,那麼這個表空間可以被加入一個臨時表空間組;
使用臨時表空間組可解決如下問題:1.避免由於單一臨時表空間不足導致無法而儲存排序結果,尤其是分割槽表的排序;2.當使用者通過多個會話同時連線時,可使用不同的臨時表空間;3.允許並行執行伺服器在單一併行系統中使用多臨時表空間;
SQL> select * from v$version where rownum <2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
當前資料庫上沒有任何的TEMPORARY TABLESPACE GROUP。
SQL> select * from dba_tablespace_groups;
未選定行
在建立一個新的TABLESPACE時,並指定了加入一個GROUP,這時ORACLE會自動建立一個新的GROUP.
SQL> create temporary tablespace t1 tempfile 'D:\ORACLE\ORADATA\TEST\t01.dbf' si
ze 2M tablespace group g1;
表空間已建立。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
G1 T1
把一個已經存在的臨時表空間加入到G1 組;
SQL> alter tablespace temp tablespace group g1;
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
G1 TEMP
G1 T1
把一個臨時表空間移到其他組裡,這組在ALTER 命令中建立;
SQL> alter tablespace temp tablespace group g2;
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
G2 TEMP
G1 T1
把個臨時表空間移出組:
SQL> alter tablespace temp tablespace group '';
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
G1 T1
由於TEMPORARY TABLESPACE (GROUP) 是共享的名稱空間,所以不能重名:
SQL> alter tablespace temp tablespace group t1;
alter tablespace temp tablespace group t1
*
第 1 行出現錯誤:
ORA-01543: 表空間 'T1' 已存在
當GROUP裡最後一個TABLESPACE被移走,該GROUP會自動刪除;
SQL> drop tablespace t1 including contents and datafiles;
表空間已刪除。
SQL> select * from dba_tablespace_groups;
未選定行
出現DEFAULT TEMPORARY TABLESPACE的地方,都可以用GROUP 來代替:
SQL> alter user kk temporary tablespace g1;
使用者已更改。
SQL> alter database default temporary tablespace g1;
資料庫已更改。
如果使用者kk 有多個session同時登陸上系統,而且執行sort的操作,從v$sort_usage 檢視看到不同的tablespace。
在版本10.1.0.4 上會出現這樣的BUG: One Tablespace Exists in V$TABLESPACE but Not in DBA_TABLESPACES。而這個TABLESPACE就是GROUP 名稱;
-THE END-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/40239/viewspace-707423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle10新特性:臨時表空間組(temporary tablespace group)Oracle
- Oracle10g新特性:臨時表空間組(temporary tablespace group)Oracle
- oracle的臨時表空間temporary tablespaceOracle
- 臨時表空間temporary tablespace相關操作
- 重建控制檔案後,對臨時表空間(temporary tablespace)進行重建
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- oracle臨時表空間組Oracle
- oracle10G新特性之臨時表空間組的應用Oracle
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- Oracle10g新特新:臨時表空間組Oracle
- Oracle 10G 中臨時表空間組的操作和使用Oracle 10g
- 10G 新特性系列: SYSAUX 表空間UX
- Oracle 11g 新特性 -- 臨時表空間收縮(轉)(Oracle
- 10g新特性——表空間重新命名
- Oracle 11g中Temp臨時表空間、檔案的新特性Oracle
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- Oracle Database 10g新特性-改善的表空間管理OracleDatabase
- 臨時表空間的建立、刪除,設定預設臨時表空間
- oracle 12c 新特性 Temporary UNDO 臨時回滾段Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle的臨時表空間Oracle
- Oracle Temp 臨時表空間Oracle
- Oracle臨時表GLOBAL TEMPORARY TABLEOracle
- Oracle Temporary Tables(Oracle 臨時表)Oracle
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- 10g新特性之-跨平臺表空間傳輸
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- Tablespace Transporting (10G新特性)
- 10G新特性:BIGFILE TABLESPACE
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- oracle臨時表空間相關Oracle
- MySQL InnoDB臨時表空間配置MySql
- Oracle TEMP臨時表空間概念Oracle