为什么v$sort_segment和v$tempfile显示的临时文件大小不一致

[复制链接]
查看11 | 回复3 | 2009-4-7 10:25:03 | 显示全部楼层 |阅读模式
v$sort_segment和v$tempfile显示的临时文件大小不一致。
我的数据库里只有一个tempfile,
OS:REDHAT 5
DB:ORACLE 10.2
SQL> SELECT FILE#,BYTES,BLOCKS,CREATE_BYTES,BLOCK_SIZE,NAME FROM V$TEMPFILE;

FILE#BYTES BLOCKS CREATE_BYTES BLOCK_SIZE NAME
---------- ---------- ---------- ------------ ---------- --------------------------------------------------------------------------------
1 27262976 3328 20971520 8192 /db/oracle/oradata/orcl/temp01.dbf

SQL> SELECT TABLESPACE_NAME,EXTENT_SIZE,TOTAL_EXTENTS,TOTAL_BLOCKS,MAX_SIZE,MAX_BLOCKS FROM V$SORT_SEGMENT;

TABLESPACE_NAME
EXTENT_SIZE TOTAL_EXTENTS TOTAL_BLOCKS MAX_SIZE MAX_BLOCKS
------------------------------- ----------- ------------- ------------ ---------- ----------
TEMP
128
25 3200 25 3200
回复

使用道具 举报

千问 | 2009-4-7 10:25:03 | 显示全部楼层
可以看到v$tempfile查出来的结果比起v$sort_segment多了128个block,
正好是一个extent的大小。
回复

使用道具 举报

千问 | 2009-4-7 10:25:03 | 显示全部楼层
各位大侠,大家有试过没有?
回复

使用道具 举报

千问 | 2009-4-7 10:25:03 | 显示全部楼层
你可以看一下v$temp_extent_pool
这个结果记录的temp extent size 和v$sort_segment记录的是一样的
TABLESPACE_NAME
FILE_ID EXTENTS_CACHED EXTENTS_USED BLOCKS_CACHED
------------------------------ ---------- -------------- ------------ -------------
TEMP
1
180
0 23040
180 x 128 = 23040
个人理解这个应该是temp 可用的排序空间
至于v$tempfile的BLOCKS大小,可以找到这个字段是来源于x$kcvfhtmp中的 fhtmpfsz,也就是tmp文件的blockSize,也可以从官方文档看到:
V$TEMPFILEThis view displays tempfile information.
Column Datatype Description
BLOCKS NUMBER Size of the file in blocks (from the file header)
它包含了file header的内容,也就是说保留了一部分空间储存了文件头的内容
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行