2

我正在尝试比较我的系统(Oracle 10g)中非常大的两个表。我过去比较的方式是“减号”操作。由于表很大,想实时了解临时表空间的使用情况。

我以某种方式搜索了如何使用临时表空间。但我不确定哪个是正确的。以下是三种方式:

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

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

4

2 回答 2

3

查看动态性能视图 v$sql_workarea 和 v$sql_workarea_active ——它们不仅会告诉您查询使用了多少空间,而且其中有多少可归因于执行计划中的不同阶段、哪种排序它所在的区域(哈希连接等)以及它的使用方式(单程等)。这将是一种更有效的性能调优方法。

于 2013-03-26T09:44:49.790 回答
0

V$SORT_SEGMENT视图可用于获取 TEMPORARY 表空间的已用/空闲范围、已用/空闲块信息。

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

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

于 2019-04-24T08:40:04.867 回答