March 25, 2006
v$tempfile与v$sort_usage之关系解析
作者:eygle
出处:http://blog.eygle.com
在前面的V$TEMPSEG_USAGE与Oracle排序中我谈到V$TEMPSEG_USAGE和V$SORT_USAGE同源,其中的SEGFILE#代表的是绝对文件号(AFN).
那么对于临时表空间的临时文件来说,这个字段可以和什么字段进行关联呢?
我们再来看一下V$TEMPFILE的来源,V$TEMPFILE由如下语句创建:
SELECT tf.inst_id, tf.tfnum, TO_NUMBER (tf.tfcrc_scn), |
考察x$kcctf底层表,我们注意到TFAFN(temp file absolute file number)在这里存在:
SQL> desc x$kcctf |
而这个字段在构建v$tempfile时并未出现,所以我们不能通过v$sort_usage和v$tempfile直接关联绝对文件号.
通过LOB对象与临时段一文中方法我们可以简单构建一个排序段使用,然后来研究一下:
SQL> select username,segtype,segfile#,segblk#,extents,segrfno# USERNAME SEGTYPE SEGFILE# SEGBLK# EXTENTS SEGRFNO# |
我们看到这里的SEGFILE#=9,而在v$tempfile是找不到这个信息的:
SQL> select file#,rfile#,ts#,status,blocks FILE# RFILE# TS# STATUS BLOCKS |
我们可以从x$kcctf中获得这些信息,我们可以看到v$tempfile.file#实际上来自x$kcctf.tfnum,实际上是临时文件的顺序号,而绝对文件号是x$kcctf.tfafn,这个才可以和v$sort_usage.segfile#关联:
SQL> select indx,tfnum,tfafn,tfcsz INDX TFNUM TFAFN TFCSZ |
临时表空间的绝对文件号可以通过如下查询获得:
SQL> select tm.file# Fnum ,tf.tfafn AFN,tm.name FName FNUM AFN FNAME |
至于其他就不再赘述。
Posted by eygle at 4:36 PM | Comments (0)
LOB对象与临时段
作者:eygle
出处:http://blog.eygle.com
刚刚和DCBA聊到他们刚刚遇到的一个问题:LOB对象与临时表空间的关系.
如果程序中使用了临时的LOB类型变量,Oracle会分配临时空间,如果并发很高,初始区很大,那么数据库可能产生严重的TEMP表空间的不足问题.
可以通过测试轻易再现这种状况,在多个Session中执行如下代码:
declare |
查询v$sort_usage视图,我们可以获得如下信息:
SQL> select s.username, s.sid, u.tablespace, u.contents, u.segtype, USERNAME SID TABLESPACE CONTENTS SEGTYPE MB SQL> |
Metalink Note:228479.1 称这并非一个Bug:
To workaround the problem, disconnect the database user session.
This behaviour does not reproduce in Oracle10, but is not a bug.
9i中临时表空间的定义为:
SQL> select BLOCK_SIZE,INITIAL_EXTENT,NEXT_EXTENT,EXTENT_MANAGEMENT,ALLOCATION_TYPE BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT EXTENT_MAN ALLOCATIO |
在Oracle8i中情况有所不同.
Oracle会分配多个段,在Oracle8i中执行如下代码:
SQL> declare |
会看到如下结果:
SQL> select user,SEGTYPE,CONTENTS,blocks from v$sort_usage; USER SEGTYPE CONTENTS BLOCKS |
本测试中Oracle8i中临时表空间定义为:
SQL> select INITIAL_EXTENT,NEXT_EXTENT,EXTENT_MANAGEMENT,ALLOCATION_TYPE INITIAL_EXTENT NEXT_EXTENT EXTENT_MAN ALLOCATIO |
Posted by eygle at 3:34 PM | Comments (0)
