首頁 >資料庫 >Oracle >oracle怎麼查詢臨時表空間

oracle怎麼查詢臨時表空間

WBOY
WBOY原創
2022-03-07 16:23:5615644瀏覽

方法:1、利用「select username,temporary_tablespace from dba_users」查看使用者目前使用的臨時表空間;2、利用「select * from dba_temp_files」查看臨時表空間檔案。

oracle怎麼查詢臨時表空間

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle怎麼查詢臨時表空間

臨時表空間用來管理資料庫排序操作以及用於存儲臨時表、中間排序結果等臨時對象,當ORACLE裡需要用到SORT的時候,並且當PGA中sort_area_size大小不夠時,將會把資料放入臨時表空間進行排序。像是資料庫中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能使用至臨時表空間。當操作完成後,系統會自動清理臨時表空間中的臨時對象,並自動釋放臨時段。這裡的釋放只是標記為空閒、可以重複使用,其實實質佔用的磁碟空間並沒有真正釋放。這也是臨時表空間有時會不斷增加的原因。

臨時表空間儲存大規模排序作業(小規模排序作業會直接在RAM裡完成,大規模排序才需要磁碟排序Disk Sort)和雜湊作業的中間結果.它跟永久表空間不同的地方在於它由臨時資料檔案(temporary files)組成的,而不是永久資料檔案(datafiles)。臨時表空間不會儲存永久類型的對象,所以它不會也不需要備份。另外,對臨時資料檔的操作不產生redo日誌,不過會產生undo日誌。

建立臨時表空間或臨時表空間新增臨時資料檔案時,即使臨時資料檔案很大,新增過程也相當快。這是因為ORACLE的臨時資料檔案是一類特殊的資料檔案:稀疏檔案(Sparse File),當臨時表空間檔案建立時,它只會寫入檔案頭部和最後區塊資訊(only writes to the header and last block of the file)。它的空間是延遲分配的.這就是你創建臨時表空間或給臨時表空間添加資料檔飛快的原因。

另外,臨時表空間是NOLOGGING模式以及它不保存永久類型對象,因此即使資料庫損毀,做Recovery也不需要恢復Temporary Tablespace。

--查看用户当前使用的临时表空间
select username,temporary_tablespace from dba_users;
--查看数据库临时表空间文件
select * from dba_temp_files;
--查看数据库临时表空间使用情况
select * from dba_temp_free_space;

推薦教學:《Oracle影片教學

以上是oracle怎麼查詢臨時表空間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn