Oracle 原理:临时表空间的操作方式
臨時表空間用于存放用戶的臨時數據,允許被覆蓋,關閉數據庫后,臨時表空間的數據會自動刪除。在專有連接模式下,一個用戶進程對應的一個服務器進程。臨時表空間在硬盤中,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 <tablename> tablespace group <groupname>..? ?--當?groupname :='' 時為移除組.
給臨時表空間分配臨時文件: alter tablespace <spacename> add tempfile '<路徑/文件名.dbf>' size? [100m] autoextend on ;
?
修改默認臨時表空間:
alter database default temporary tablespace [groupname or spacename]
總結
以上是生活随笔為你收集整理的Oracle 原理:临时表空间的操作方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 原理:DML触发器和数据库
- 下一篇: Oracle 原理:UNDO表空间