關(guā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]”文章。
本文就臨時表空間組的創(chuàng)建及簡單維護(hù)做一個實踐。
1.數(shù)據(jù)庫版本信息
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)建臨時表空間組TEMP_GRP,其中包含兩個臨時表空間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視圖可以查看臨時表空間組的信息
sys@ora10g> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP1 TEMP2
可見,臨時表空間組GROUP1包含了兩個臨時表空間TEMP1和TEMP2。滿足了我們臨時表空間組創(chuàng)建的要求。
4.指定臨時表空間組GROUP1為所有新創(chuàng)建的用戶的默認(rèn)臨時表空間
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,此時新創(chuàng)建的secooler用戶的默認(rèn)臨時表空間已經(jīng)指定到了臨時表空間組GROUP1上。
5.將臨時表空間TEMP2移動到臨時表空間組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)中本沒有GROUP2臨時表空間組,此處系統(tǒng)會自動創(chuàng)建這個數(shù)據(jù)庫對象。
6.移除臨時表空間組中所有臨時表空間后臨時表空間組會自動刪除
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.臨時表空間組應(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
開啟兩個不同的session連接到secooler用戶執(zhí)行下面排序語句
secooler@ora10g> select a.table_name, b.table_name from all_tables a, all_tables b order by 1;
經(jīng)過反復(fù)嘗試之后可以看到同一個用戶的不同session可以使用到臨時表空間組中的不同臨時表空間
sys@ora10g> select username, session_num, tablespace from v$sort_usage;
USERNAME SESSION_NUM TABLESPACE
------------------------------ ----------- -------------------------------
SECOOLER 1506 TEMP1
SECOOLER 3662 TEMP2
8.小結(jié)
使用臨時表空間組的優(yōu)勢及注意事項:
1.臨時表空間組中可以包含無數(shù)個臨時表空間,沒有限制,這樣擴大了臨時表空間的大小,保證有充足的臨時表空間;
2.臨時表空間組的名字不可以和已有的臨時表空間名字相同;
3.臨時表空間組不是顯式創(chuàng)建的,而是隨臨時表空間被指定到臨時表空間組時隱式創(chuàng)建的。當(dāng)臨時表空間組中的所有臨時表空間被移除或被刪除之后,該臨時表空間組也隨即被刪除;
4.同一個用戶連接的多個會話可以使用到臨時表空間組中的不同臨時表空間,提高系統(tǒng)的性能。
Good luck.
secooler
10.07.13
-- The End --
分享題目:【臨時表空間組】臨時表空間組的創(chuàng)建、維護(hù)及應(yīng)用
新聞來源:http://aaarwkj.com/article10/jjjigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、移動網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站營銷、網(wǎng)站導(dǎo)航、網(wǎng)頁設(shè)計公司
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)