知识大全 v$tempfile与v$sort
Posted 文件
篇首语:常识是事物可能性的尺度,由预见和经验组成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 v$tempfile与v$sort相关的知识,希望对你有一定的参考价值。
在前面的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) TO_DATE (tf tfcrc_tim MM/DD/RR HH :MI:SS NLS_CALENDAR=Gregorian ) tf tftsn tf tfrfn DECODE (BITAND (tf tfsta ) OFFLINE ONLINE UNKNOWN ) DECODE (BITAND (tf tfsta ) DISABLED READ ONLY READ WRITE UNKNOWN ) fh fpfsz * tf tfbsz fh fpfsz tf tfcsz * tf tfbsz tf tfbsz fn fnnam FROM x$kcctf tf x$kccfn fn x$kcvfp fh WHERE fn fnfno = tf tfnum AND fn fnfno = pxfil AND tf tffnh = fn fnnum AND tf tfdup != AND fn fntyp = AND fn fnnam IS NOT NULL
考察x$kcctf底层表 我们注意到TFAFN(temp file absolute file number)在这里存在:
SQL> desc x$kcctf Name Null? Type ADDR RAW( ) INDX NUMBER INST_ID NUMBER TFNUM NUMBER TFAFN NUMBER TFCSZ NUMBER TFBSZ NUMBER TFSTA NUMBER TFCRC_SCN VARCHAR ( ) TFCRC_TIM VARCHAR ( ) TFFNH NUMBER TFFNT NUMBER TFDUP NUMBER TFTSN NUMBER TFTSI NUMBER TFRFN NUMBER TFPFT NUMBER
而这个字段在构建v$tempfile时并未出现 所以我们不能通过v$sort_usage和v$tempfile直接关联绝对文件号
通过LOB对象与临时段一文中方法我们可以简单构建一个排序段使用 然后来研究一下:
SQL> select username segtype segfile# segblk# extents segrfno# from v$sort_usage;
USERNAME SEGTYPE SEGFILE# SEGBLK# EXTENTS SEGRFNO# SYS LOB_DATA
我们看到这里的SEGFILE#= 而在v$tempfile是找不到这个信息的:
SQL> select file# rfile# ts# status blocks from v$tempfile;
FILE# RFILE# TS# STATUS BLOCKS ONLINE
我们可以从x$kcctf中获得这些信息 我们可以看到v$tempfile file#实际上来自x$kcctf tfnum 实际上是临时文件的顺序号 而绝对文件号是x$kcctf tfafn 这个才可以和v$sort_usage segfile#关联
SQL> select indx tfnum tfafn tfcsz from x$kcctf;
INDX TFNUM TFAFN TFCSZ
临时表空间的绝对文件号可以通过如下查询获得:
SQL> select tm file# Fnum tf tfafn AFN tm name FName from v$tempfile tm x$kcctf tf where tm file# = tf tfnum;
FNUM AFN FNAME /opt/oracle/oradata/conner/temp dbf /opt/oracle/oradata/conner/temp dbf
cha138/Article/program/Oracle/201311/16729相关参考