我试图比较两个在我的系统中非常大的表(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
这三种方式让我很困惑,我不知道有什么区别。答案 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表空间信息。