轉:Oracle 臨時表空間過大問題解決
轉自:http://blog.chinaunix.net/u/15472/showart.php?id=306359
Oracle 臨時表空間過大問題解決
今天過來查詢資料庫伺服器時,發現資料庫伺服器磁碟使用空間達到了98%,分析總共的資料檔案也不可能達到如此大,經過查詢發現原來臨時表空間的使用情況達到了32G,導致磁碟空間使用緊張。搜尋了相應的文件與資料後,查出
臨時表空間主要使用在:
- 索引建立或重建立.
- ORDER BY or GROUP BY (這個是‘罪魁禍首’)
- DISTINCT 操作.
- UNION & INTERSECT & MINUS
- Sort-Merge joins.
- Analyze 操作
- 有些異常將會引起temp暴漲 (這個也很有可能)
下面是重新建立一個臨時表空間,把原來的預設臨時表空間drop掉(包括裡面的臨時資料檔案)再重新建立
SQL> create temporary tablespace temp2
2 tempfile '/home/oracle/oracle/product/10.2.0/oradata/hatest/temp02.pdf' size 512M reuse
3 autoextend on next 640k maxsize unlimited;
Tablespace created.
SQL> alter database default temporary tablespace temp2;
Database altered.
SQL> drop tablespace temp including contents and datafiles;
Tablespace dropped.
(注意:由於臨時表空間的資料檔案比較大,所以這步可能會花費比較長的時間)
SQL> create temporary tablespace temp
2 tempfile '/home/oracle/oracle/product/10.2.0/oradata/hatest/temp01.pdf' size 512M reuse
3 autoextend on next 640K maxsize unlimited;
Tablespace created.
SQL> alter database default temporary tablespace temp;
Database altered.
SQL> drop tablespace temp2 including contents and datafiles;
Tablespace dropped.
SQL> exit
以上的方法只是暫時釋放了臨時表空間的磁碟佔用空間,是治標但不是治本的方法,真正的治本的方法是找出資料庫中消耗資源比較大的sql語句,然後對其進行最佳化處理。下面是查詢在sort排序區使用的執行耗時的SQL
Select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value))as Space,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
order by se.username,se.sid
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-448808/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 臨時表空間ORA-1652問題解決
- oracle臨時表空間相關Oracle
- oracle系統表空間過大問題處理Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 臨時表空間使用率過高的解決辦法
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- [20210528]oracle大表空間預分配問題.txtOracle
- oracle 臨時表空間的增刪改查Oracle
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- 檢視oracle臨時表空間佔用率的檢視Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 萬萬沒想到,我在夜市地攤解決了MySQL臨時表空間難題~~MySql
- MySQL InnoDB臨時表空間配置MySql
- 刪除臨時表空間組
- 4.2.1.8規劃臨時表空間
- Oracle日常問題-臨時表過多導致exp速度慢Oracle
- Oracle 10g大檔案表空間(轉)Oracle 10g
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- 2.5.7 建立預設臨時表空間
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- 臨時表空間和回滾表空間使用率查詢
- Oracle表空間切換路徑,解決硬碟滿導致的ORA-01653問題Oracle硬碟
- 【問題解決】使用YYYY-MM-dd時間轉換問題
- SQLServer如何釋放tempdb臨時表空間SQLServer
- 消除臨時表空間暴漲的方法
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- oracle 表空間Oracle
- Oracle表空間Oracle
- undo表空間使用率過高解決
- Oracle的表空間quota詳解Oracle
- MYSQL造資料佔用臨時表空間MySql
- oracle 剩餘表空間查詢慢,解決辦法Oracle
- 查詢過去一段時間內某條sql使用的臨時表空間大小SQL
- oracle temp 表空間Oracle
- 增加oracle表空間Oracle
- 臨時表空間被佔滿的原因查詢
- oracle 表移動表空間Oracle