本篇內(nèi)容介紹了“怎么理解Oracle臨時(shí)表空間組”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè), 我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。
在oracle10g以前,每個(gè)用戶只能使用一個(gè)臨時(shí)表空間,就是其默認(rèn)臨時(shí)表空間。oracle10g及其以后版本提供了新的臨時(shí)表空間組的功能,允許將多個(gè)臨時(shí)表空間打包成一個(gè)組,然后指定用戶的默認(rèn)臨時(shí)表空間為該臨時(shí)表空間組,從而達(dá)到一個(gè)用戶可以使用多個(gè)臨時(shí)表空間的目的。
一個(gè)臨時(shí)表空間組至少包含一個(gè)臨時(shí)表空間。臨時(shí)表空間組無法顯式創(chuàng)建,當(dāng)?shù)谝粋€(gè)臨時(shí)表空間分配給該組時(shí)自動(dòng)創(chuàng)建,當(dāng)組內(nèi)所有臨時(shí)表空間被移除時(shí)自動(dòng)刪除。
臨時(shí)表空間組支持的操作:
可以將臨時(shí)表空間從一個(gè)組移動(dòng)到另外一個(gè)組(如果組不存在,則自動(dòng)創(chuàng)建)。
可以將組中的臨時(shí)表空間從組中移除。
可以將目前不屬于任何組的臨時(shí)表空間加入一個(gè)組。
使用臨時(shí)表空間組的好處:
防止一個(gè)臨時(shí)表空間出現(xiàn)空間不足的問題。
同一個(gè)用戶同時(shí)連接多個(gè)session時(shí)可以使用不同的臨時(shí)表空間。
在并行操作中可以并行使用多個(gè)臨時(shí)表空間。
臨時(shí)表空間組支持的操作:
可以將臨時(shí)表空間從一個(gè)組移動(dòng)到另外一個(gè)組(如果組不存在,則自動(dòng)創(chuàng)建)。
可以將組中的臨時(shí)表空間從組中移除。
可以將目前不屬于任何組的臨時(shí)表空間加入一個(gè)組。
使用臨時(shí)表空間組的好處:
防止一個(gè)臨時(shí)表空間出現(xiàn)空間不足的問題。
同一個(gè)用戶同時(shí)連接多個(gè)session時(shí)可以使用不同的臨時(shí)表空間。
在并行操作中可以并行使用多個(gè)臨時(shí)表空間。
下面給出幾個(gè)例子:
環(huán)境
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 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
1.創(chuàng)建臨時(shí)表空間組
SQL> create temporary tablespace temp1
2 tempfile 'e:/oracle/oradata/ning/temp101.dbf' size 10m
3 tablespace group group1;
表空間已創(chuàng)建。
SQL> create temporary tablespace temp2
2 tempfile ''e:/oracle/oradata/ning/temp201.dbf' size 10m
3 tablespace group group1;
表空間已創(chuàng)建。
2.查看系統(tǒng)中目前存在的臨時(shí)表空間組的信息
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP1 TEMP2
3.移動(dòng)臨時(shí)表空間到新的臨時(shí)表空間組
SQL> alter tablespace temp2 tablespace group group2;
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP2 TEMP2
4.將臨時(shí)表空間從臨時(shí)表空間組中移出
SQL> alter tablespace temp2 tablespace group '';
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
5.臨時(shí)表空間組的名字不能和表空間的名字沖突
SQL> create temporary tablespace temp3
2 tempfile ''e:/oracle/oradata/ning/temp301.dbf' size 10m
3 tablespace group temp3;
create temporary tablespace temp3
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-10918: TABLESPACE GROUP name cannot be the same as tablespace name
SQL> create temporary tablespace temp3
2 tempfile 'e:/oracle/oradata/ning/temp301.dbf' size 10m
3 tablespace group temp1;
create temporary tablespace temp3
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01543: 表空間 'TEMP1' 已存在
6.刪除組中所有的臨時(shí)表空間后,組會(huì)自動(dòng)刪除
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
SQL> drop tablespace temp1 including contents and datafiles;
表空間已刪除。
SQL> select * from dba_tablespace_groups;
未選定行
7.可以將數(shù)據(jù)庫或者用戶的默認(rèn)臨時(shí)表空間指定為臨時(shí)表空間組
SQL> create temporary tablespace temp1
2 tempfile ''e:/oracle/oradata/ning/temp101.dbf' size 10m
3 tablespace group group1;
表空間已創(chuàng)建。
SQL> alter tablespace temp2 tablespace group group1;
表空間已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
GROUP1 TEMP1
GROUP1 TEMP2
SQL> alter database default temporary tablespace group1;
數(shù)據(jù)庫已更改。
SQL> alter user ning temporary tablespace group1;
用戶已更改。
8.同一個(gè)用戶的不同session可以使用不同的臨時(shí)表空間
首先用sys用戶查詢
SQL> select username, session_num, tablespace from v$sort_usage;
未選定行
新開session1執(zhí)行
SQL> conn ning/ning
已連接。
select a.table_name, b.table_name from dict A, dict B order by a.table_name;
新開session2執(zhí)行
SQL> conn ning/ning
已連接。
select a.table_name, b.table_name from dict A, dict B;
sys查詢:
SQL> select username, session_num, tablespace from v$sort_usage;
USERNAME SESSION_NUM TABLESPACE
---------- ----------- ----------
NING 74 TEMP2
NING 62 TEMP1
可以發(fā)現(xiàn),同一個(gè)用戶ning的兩個(gè)session分別使用了兩個(gè)不同的臨時(shí)表空間。
“怎么理解Oracle臨時(shí)表空間組”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!