表空間組能讓用戶使用來自多個臨時表空間中的臨時空間。使用表空間組,而不是單個臨時表空間,可以減少由于一個臨時表空間沒有足夠的空間來處理排序而引發(fā)的問題。表空間組能讓單個并行操作的并行執(zhí)行服務(wù)器進(jìn)程使用多個臨時表空間。表空間組有以下特性:
.它包含至少一個臨時表空間。對于一個表空間組可以包含的臨時表空間數(shù)量沒有限制。
.它共享命名空間,所以表空間組的名字不能與任何表空間名相同。
.當(dāng)對數(shù)據(jù)庫或用戶指定缺省臨時表空間時可以使用表空間組來代替。
我們不能顯示創(chuàng)建一個表空間組,但可以在創(chuàng)建第一臨時表空間時隱式來創(chuàng)建表空間組。當(dāng)表空間組中的最后一個臨時表空間被刪除后,表空間組也會被刪除。查詢s可以查看相關(guān)表空間組與相關(guān)的臨時表空間。
創(chuàng)建表空間組
當(dāng)執(zhí)行 或alter 語句時通過指定 group子句來隱式創(chuàng)建表空間組并且所指定的表空間組要在當(dāng)前數(shù)據(jù)庫中并不存在。例如,如果表空間組,不存在,那么下面的語句將會創(chuàng)建這兩個表空間組oracle創(chuàng)建臨時表空間,并且每個表空間組只有一個臨時表空間存在。
SQL> temp2 '+DATA/JY///temp2.dbf' size 50M group ;
.
SQL> alter temp group ;
.
SQL> * from s;
------------------------------ ------------------------------
TEMP
TEMP2
更改表空間組成員
可以向現(xiàn)有表空間組增加臨時表空間,這可以通過執(zhí)行包含有 group子句的 或alter 語句來完成。
下面的語句將向現(xiàn)有表空間組中增加一個臨時表空間temp3,因些表空間組包含臨時表空間temp2與temp3。
SQL> temp3 '+DATA/JY///temp3.dbf' size 50M group ;
.
SQL> * from s;
------------------------------ ------------------------------
TEMP
TEMP2
TEMP3
下面的語句將向現(xiàn)有表空間組中增加一個臨時表空間temp2,但因為臨時表空間temp2已經(jīng)存在,語句只是將臨時表空間temp2從表空間組移到表空間組中。
SQL> * from s;
------------------------------ ------------------------------
TEMP
TEMP2
TEMP3
現(xiàn)在表空間組包含臨時表空間temp,temp2,表空間組只包含臨時表空間temp3。
下面的語句將從表空間組中刪除臨時表空間temp3
SQL> alter temp3 group '';
.
SQL> * from s;
------------------------------ ------------------------------
TEMP
TEMP2
臨時表空間temp3不再屬于任何表空間組。因此表空間組不包含任何臨時表空間,因此隱式地刪除了表空間組。
指定表空間組作為數(shù)據(jù)庫的缺省臨時表空間
通過執(zhí)行alter ... 語句來指定一個表空間組作為數(shù)據(jù)庫的臨時表空間。
SQL> , FROM WHERE ='ACE';
-------------------------------------------------- --------------------------------------------------
ACE TEMP
SQL> alter ;
.
SQL> , FROM WHERE ='ACE';
-------------------------------------------------- --------------------------------------------------
ACE
任何沒有顯示指定臨時表空間的用戶oracle創(chuàng)建臨時表空間,將可以使用臨時表空間temp,temp2中的空間。當(dāng)表空間組被指定作為數(shù)據(jù)庫的臨時表空間時,不能刪除表空間組中的任何成員。要刪除臨時表空間必須首先要刪除表空間組。同樣不能刪除作為數(shù)據(jù)庫的缺省臨時表空間。