如何知道Oracle中临时表空间的用法

时间:2013-03-26 05:09:17

标签: oracle temporary tablespace

我试图比较两个在我的系统中非常大的表(Oracle 10g)。 我以前比较的方式是“MINUS”操作。 由于表的大小,我想知道临时表空间的用法 在实时。

我一直在搜索如何获得临时表空间的用法。但我不确定 哪一个是对的。这是三种方式:

1.从V $ TEMP_SPACE_HEADER中选择TABLESPACE_NAME,BYTES_USED,BYTES_FREE;

2.从V $ TEMP_EXTEND_POOL中选择BYTES_USED,BYTES_CACHED

   What is the difference of BYTES_USED and BYTES_CACHED

3.选择USED_EXTENDS,USED_BLOCKS v $ sort_segment

这三种方式让我很困惑,我不知道有什么区别。

2 个答案:

答案 0 :(得分:2)

查看动态性能视图v $ sql_workarea和v $ sql_workarea_active - 它们不仅会告诉您查询使用了多少空间,还有多少可归因于执行计划中的不同阶段,它是一种排序区域(散列连接等)以及如何使用它(一次通过等)。这将是一种更有效的性能调优方法。

答案 1 :(得分:0)

V $ SORT_SEGMENT 视图可用于获取TEMPORARY表空间的已用/可用区,已用/可用块信息。

V $ TEMP_SPACE_HEADER V $ TEMP_EXTEND_POOL 视图几乎相同,它们提供了使用的字节信息。但是,V $ TEMP_EXTEND_POOL是可靠的,因为前者仅在重新启动DB或重新创建表空间时才更新。

注意::从Oracle 11g中,DBA_TEMP_FREE_SPACE视图可用于获取TEMPORARY表空间信息。