Oracle 原理 臨時表空間的操作方式

2021-10-08 02:51:56 字數 1177 閱讀 1695

臨時表空間用於存放使用者的臨時資料,允許被覆蓋,關閉資料庫後,臨時表空間的資料會自動刪除。在專有連線模式下,乙個使用者程序對應的乙個伺服器程序。臨時表空間在硬碟中,sql查詢取出來的資料放在在pga(程式全域性區)中也是伺服器記憶體中。例如在使用者執行sql進行排序時會用臨時表空間進行排序。例如sql語句: select * from a.b order by a.col1 ,b.col2 desc.

oracle 會把查詢出來的資料再pga中進行排序,如果資料太多,伺服器記憶體不足以支援排序,會把查詢出來的資料分成多份,每份放到臨時表空間中進行排序。所以如果pga太小或者資料太大,可能會導致與外盤的互動變多從而導致效率下降

臨時表空間組是有乙個或者多個臨時表空間組成的。臨時表空間不能顯式的新建或者刪除。

查詢表空間select * from dba_tablespaces. 。 只要字段  contents的值是temporary 就是臨時表空間

查詢所有資料檔案: select * from dba_data_files;   可以查詢到表空間存放的位置,臨時表除外。

查詢臨時表資料檔案: select * from dba_temp_files;

查詢臨時表空間組:select * from dba_tablespace_groups;;

查詢預設臨時表空間: select * from database_properties where property_name='default_temp_tablespace';

建立臨時表空間:

create temporary tablespace temp2 tempfile 

'd:\oracle\oradata\orcl\temp2_01.dbf' size 10m autoextend on

tablespace group temp_grp;

表空間更改組: alter tablespace tablespace group ..   --當 groupname :='' 時為移除組.

給臨時表空間分配臨時檔案: alter tablespace add tempfile '《路徑/檔名.dbf>' size  [100m] autoextend on ;

修改預設臨時表空間:

alter database default temporary tablespace [groupname or spacename]

Oracle臨時表空間

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

Oracle 臨時表空間

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

oracle臨時表空間

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