臨時表空間相關
檢視使用消耗臨時表空間資源比較多的sql語句:
SELECT se.username, se.sid, su.extents, su.blocks * to_number(rtrim(p.value)) asSpace, tablespace, segtype, sql_text FROM v$sort_usage su, v$parameter p, v$session se, v$sql s WHERE p.name = 'db_block_size' AND su.session_addr = se.saddr AND s.hash_value = su.sqlhash AND s.address = su.sqladdr ORDERBY se.username, se.sid; |
增加資料檔案
當臨時表空間太小時,就需要擴充套件臨時表空間(新增資料檔案、增大資料檔案、設定檔案自動擴充套件);有時候需要將臨時資料檔案分佈到不同的磁碟分割槽中,提升IO效能,也需要通過刪除、增加臨時表空間資料檔案。
ALTERTABLESPACE TEMP ADDTEMPFILE'/home/oradata/powerdes/temp05.dbf' SIZE4G AUTOEXTENDON NEXT128M; |
刪除資料檔案
例如,我想刪除臨時表空間下的某個檔案,那麼我們有兩種方式刪除臨時表空間的資料檔案。
方法1:
SQL> altertablespace temp droptempfile'/home/oradata/powerdes/temp03.dbf' ;
Tablespace altered.
SQL>
# 這個方法會刪除物理檔案 [oracle@pldb1 ~]$ ll /home/oradata/powerdes/temp03.dbf ls: cannot access /home/oradata/powerdes/temp03.dbf: No such file or directory [oracle@pldb1 ~]$ |
方法2:
SQL> alterdatabasetempfile'/home/oradata/powerdes/temp04.dbf'dropincludingdatafiles;
Database altered.
SQL> |
注意:刪除臨時表空間的臨時資料檔案時,不需要指定INCLUDING DATAFILES 選項也會真正刪除物理檔案,否則需要手工刪除物理檔案。
調整檔案大小
如下例子,需要將臨時資料檔案從128M大小調整為256M
SQL> alterdatabasetempfile'/home/oradata/powerdes/temp02.dbf'resize256M;
Database altered.
SQL> |
檔案離線聯機
-- 離線 alterdatabasetempfile'/home/oradata/powerdes/temp02.dbf'offline;
-- 聯機 alterdatabasetempfile'/home/oradata/powerdes/temp02.dbf'online; |
收縮臨時表空間
排序等操作使用的臨時段,使用完成後會被標記為空閒,表示可以重用,佔用的空間不會立即釋放,有時候臨時表空間會變得非常大,此時可以通過收縮臨時表空間來釋放沒有使用的空間。收縮臨時表空間是ORACLE 11g新增的功能。
SQL> ALTERTABLESPACE TEMP SHRINKSPACEKEEP8G;
SQL> ALTERTABLESPACE TEMP SHRINKTEMPFILE'/home/oradata/powerdes/temp05.dbf' |
轉載自https://blog.csdn.net/mchdba/article/details/51685173
參考文件:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/tspaces002.htm#i1013552