方法:1、利用“select username,temporary_tablespace from dba_users”查看用戶當前使用的臨時表空間;2、利用“select * from dba_temp_files”查看臨時表空間文件。
本教程操作環(huán)境:Windows10系統(tǒng)、oracle 11g版、Dell G3電腦。
oracle怎么查詢臨時表空間
臨時表空間用來管理數(shù)據(jù)庫排序操作以及用于存儲臨時表、中間排序結果等臨時對象,當ORACLE里需要用到sort的時候,并且當PGA中sort_area_size大小不夠時,將會把數(shù)據(jù)放入臨時表空間里進行排序。像數(shù)據(jù)庫中一些操作:?CREATE?INDEX、?ANALYZE、SELECT?DISTINCT、ORDER?BY、GROUP?BY、?union?ALL、?INTERSECT、MINUS、SORT-MERGE?JOINS、HASH?JOIN等都可能會用到臨時表空間。當操作完成后,系統(tǒng)會自動清理臨時表空間中的臨時對象,自動釋放臨時段。這里的釋放只是標記為空閑、可以重用,其實實質占用的磁盤空間并沒有真正釋放。這也是臨時表空間有時會不斷增大的原因。
臨時表空間存儲大規(guī)模排序操作(小規(guī)模排序操作會直接在RAM里完成,大規(guī)模排序才需要磁盤排序Disk?Sort)和散列操作的中間結果.它跟永久表空間不同的地方在于它由臨時數(shù)據(jù)文件(temporary?files)組成的,而不是永久數(shù)據(jù)文件(datafiles)。臨時表空間不會存儲永久類型的對象,所以它不會也不需要備份。另外,對臨時數(shù)據(jù)文件的操作不產生redo日志,不過會生成undo日志。
創(chuàng)建臨時表空間或臨時表空間添加臨時數(shù)據(jù)文件時,即使臨時數(shù)據(jù)文件很大,添加過程也相當快。這是因為ORACLE的臨時數(shù)據(jù)文件是一類特殊的數(shù)據(jù)文件:稀疏文件(Sparse?File),當臨時表空間文件創(chuàng)建時,它只會寫入文件頭部和最后塊信息(only?writes?to?the?header?and?last?block?of?the?file)。它的空間是延后分配的.這就是你創(chuàng)建臨時表空間或給臨時表空間添加數(shù)據(jù)文件飛快的原因。
另外,臨時表空間是NOLOGGING模式以及它不保存永久類型對象,因此即使數(shù)據(jù)庫損毀,做Recovery也不需要恢復Temporary?Tablespace。
--查看用戶當前使用的臨時表空間 select?username,temporary_tablespace?from?dba_users; --查看數(shù)據(jù)庫臨時表空間文件 select?*?from?dba_temp_files; --查看數(shù)據(jù)庫臨時表空間使用情況 select?*?from?dba_temp_free_space;
推薦教程:《Oracle視頻教程》