關(guān)于臨時(shí)表空間組的概念和簡(jiǎn)單描述可以參考Oracle官方文檔的“Oracle Database SQL Reference”(http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7003.htm#SQLRF01403)。更多信息可以參考MOS的“10g: Temporary Tablespaces Group [ID 245645.1]”文章。
本文就臨時(shí)表空間組的創(chuàng)建及簡(jiǎn)單維護(hù)做一個(gè)實(shí)踐。
1.數(shù)據(jù)庫(kù)版本信息
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
2.創(chuàng)建臨時(shí)表空間組TEMP_GRP,其中包含兩個(gè)臨時(shí)表空間TEMP1、TEMP2
sys@ora10g> create temporary tablespace TEMP1 tempfile '/oracle/oradata/ora10g/temp1_01.dbf' size 10m autoextend on tablespace group group1;
Tablespace created.
sys@ora10g> create temporary tablespace TEMP2 tempfile '/oracle/oradata/ora10g/temp2_01.dbf' size 10m autoextend on tablespace group group1;
Tablespace created.
3.使用DBA_TABLESPACE_GROUPS視圖可以查看臨時(shí)表空間組的信息
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP1 TEMP2
可見(jiàn),臨時(shí)表空間組GROUP1包含了兩個(gè)臨時(shí)表空間TEMP1和TEMP2。滿足了我們臨時(shí)表空間組創(chuàng)建的要求。
4.指定臨時(shí)表空間組GROUP1為所有新創(chuàng)建的用戶的默認(rèn)臨時(shí)表空間
sys@ora10g> alter database default temporary tablespace GROUP1;
Database altered.
sys@ora10g> create user secooler identified by secooler;
User created.
sys@ora10g> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username = 'SECOOLER';
USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
-------------- --------------------- ---------------------
SECOOLER USERS GROUP1
OK,此時(shí)新創(chuàng)建的secooler用戶的默認(rèn)臨時(shí)表空間已經(jīng)指定到了臨時(shí)表空間組GROUP1上。
5.將臨時(shí)表空間TEMP2移動(dòng)到臨時(shí)表空間組GROUP2
sys@ora10g> alter tablespace TEMP2 tablespace group GROUP2;
Tablespace altered.
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP2 TEMP2
系統(tǒng)中本沒(méi)有GROUP2臨時(shí)表空間組,此處系統(tǒng)會(huì)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)對(duì)象。
6.移除臨時(shí)表空間組中所有臨時(shí)表空間后臨時(shí)表空間組會(huì)自動(dòng)刪除
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP2 TEMP2
sys@ora10g> alter tablespace TEMP2 tablespace group '';
Tablespace altered.
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
7.臨時(shí)表空間組應(yīng)用一例
sys@ora10g> alter tablespace TEMP2 tablespace group GROUP1;
Tablespace altered.
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP1 TEMP2
開(kāi)啟兩個(gè)不同的session連接到secooler用戶執(zhí)行下面排序語(yǔ)句
secooler@ora10g> select a.table_name, b.table_name from all_tables a, all_tables b order by 1;
經(jīng)過(guò)反復(fù)嘗試之后可以看到同一個(gè)用戶的不同session可以使用到臨時(shí)表空間組中的不同臨時(shí)表空間
sys@ora10g> select username, session_num, tablespace from v$sort_usage;
USERNAME SESSION_NUM TABLESPACE
------------------------------ ----------- -------------------------------
SECOOLER 1506 TEMP1
SECOOLER 3662 TEMP2
8.小結(jié)
使用臨時(shí)表空間組的優(yōu)勢(shì)及注意事項(xiàng):
1.臨時(shí)表空間組中可以包含無(wú)數(shù)個(gè)臨時(shí)表空間,沒(méi)有限制,這樣擴(kuò)大了臨時(shí)表空間的大小,保證有充足的臨時(shí)表空間;
2.臨時(shí)表空間組的名字不可以和已有的臨時(shí)表空間名字相同;
3.臨時(shí)表空間組不是顯式創(chuàng)建的,而是隨臨時(shí)表空間被指定到臨時(shí)表空間組時(shí)隱式創(chuàng)建的。當(dāng)臨時(shí)表空間組中的所有臨時(shí)表空間被移除或被刪除之后,該臨時(shí)表空間組也隨即被刪除;
4.同一個(gè)用戶連接的多個(gè)會(huì)話可以使用到臨時(shí)表空間組中的不同臨時(shí)表空間,提高系統(tǒng)的性能。
Good luck.
secooler
10.07.13
-- The End --
本文名稱(chēng):【臨時(shí)表空間組】臨時(shí)表空間組的創(chuàng)建、維護(hù)及應(yīng)用
標(biāo)題來(lái)源:
http://weahome.cn/article/jjjigo.html