ORACLE 臨時表空間TEMP 滿了怎麼辦?

2021-03-31 11:18:20 字數 910 閱讀 2427

最近遇到這樣乙個問題:前一段時間網頁查詢oracle表正常,可最近一直頁面無法顯示。列印出sql放到pl/sql devoloper 執行,報「無法通過8(在表空間***中)擴充套件 temp 段」,還有乙個頁面,可以查詢出記錄,但無法統計資料!

經過分析產生原因可能是:oracle臨時段表空間不足,因為oracle總是盡量分配連續空間,一但沒有足夠的可分配空間或者分配不連續就會出現上述的現象。 

解決方法:知道由於oracle將表空間作為邏輯結構-單元,而表空間的物理結構是資料檔案,資料檔案在磁碟上物理地建立,表空間的所有物件也存在於磁碟上,為了給表空間增加空間,就必須增加資料檔案。先檢視一下指定表空間的可用空間,使用檢視sys.dba_free_space,檢視中每條記錄代表可用空間的碎片大小: 

sql>select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=『***』; 

返回的資訊可初步確定可用空間的最大塊,看一下它是否小於錯誤資訊中提到的尺寸,再檢視一下預設的表空間引數: 

sql>select initial_extent,next_extent,min_extents,pct_increase from sys.dba_tablespaces where tablespace_name='***'; 

通過下面的sql命令修改臨時段表空間的預設儲存值: 

sql>alter tablespace name default storage (initial 64k next 64k); 

適當增大預設值的大小有可能解決出現的錯誤問題,也可以通過修改使用者的臨時表空間大小來解決這個問題: 

sql>alter user username temporary tablespace new_tablespace_name; 

temp表空間不足 oracle之臨時表空間組

在乙個臨時表空間 組中,使用者可以定義很多臨時表 空間。乙個臨時表空間組包含至少乙個臨時表空間,但是沒有包含最大個臨時表空間個數。注意,臨時表空間組的名子和臨時表空間的名字必須不相同,不然會出現錯誤。任何臨時表空間都可以 在乙個臨時 表空間中新增 刪除甚至 移動到其他臨時表空間組中。臨時表空間的好處...

Oracle臨時表空間

oracle臨時表空間主要是用來做查詢和存放一些快取的資料的,磁碟消耗的乙個主要原因是需要對查詢的結果進行排序,如果沒有猜錯的話,在磁碟空間的 記憶體 的分配上,oracle使用的是貪心演算法,如果上次磁碟空間消耗達到1gb,那麼臨時表空間就是1gb,如果還有增長,那麼依此類推,臨時表空間始終保持在...

Oracle 臨時表空間

我多表查詢大概五十萬條資料的檢視引發了乙個錯誤,報空間記憶體不足,開始思考分析還有哪些情況下是會使用到temp臨時表空間,在海量資料的情況下表空間不足是常見的問題 ora 01114 將塊寫入檔案 201 時出現 io 錯誤 塊 3136640 ora 27072 檔案 i o 錯誤 additio...