网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.某个数据文件损坏,如何打开数据.
.Oracle SQL的优化(2).
.利用游标返回结果集的的例子(Or.
.何时Oracle使用绑定变量性能反而.
.Oracle 数据安全问题面面观(1).
.LINUX的引导过程.
..
.oracle 中的数据结构.
.IT译文:Oracle与SQL Server之间.
.RedHat 7.3/8 下的Oracle 8i安装.
.Oracle 9i 数据库设计指引全集(.
.Oracle 最常用功能函数经典汇总.
.Oracle Database 10g:删除表新特.
.应遵循的PL/SQL编码规则.
.关于block中行数据的存储与空间重.
.Oracle9i中如何建立不同字符集的.
.Oracle初学者入门指南-索引是干什.
.oracle日期处理完全版.
.LILO修复还原.
.i系列上运行的Linux分区数量和Li.

v$tempfile与v$sort_usage之关系解析

发表日期:2008-2-9


    在前面的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 HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),
       tf.tftsn, tf.tfrfn,
       DECODE (BITAND (tf.tfsta, 2), 0, 'OFFLINE', 2, 'ONLINE', 'UNKNOWN'),
       DECODE (BITAND (tf.tfsta, 12),
               0, 'DISABLED',
               4, 'READ ONLY',
               12, 'READ WRITE',
               'UNKNOWN'
              ),
       fh.fhtmpfsz * tf.tfbsz, fh.fhtmpfsz, tf.tfcsz * tf.tfbsz, tf.tfbsz,
       fn.fnnam
  FROM x$kcctf tf, x$kccfn fn, x$kcvfhtmp fh
 WHERE fn.fnfno = tf.tfnum
   AND fn.fnfno = fh.htmpxfil
   AND tf.tffnh = fn.fnnum
   AND tf.tfdup != 0
   AND fn.fntyp = 7
   AND fn.fnnam IS NOT NULL
考察x$kcctf底层表,我们注重到TFAFN(temp file absolute file number)在这里存在: SQL> desc x$kcctf
 Name                          Null?    Type
 ----------------------------- -------- --------------------
 ADDR                                   RAW(4)
 INDX                                   NUMBER
 INST_ID                                NUMBER
 TFNUM                                  NUMBER
 TFAFN                                  NUMBER
 TFCSZ                                  NUMBER
 TFBSZ                                  NUMBER
 TFSTA                                  NUMBER
 TFCRC_SCN                              VARCHAR2(16)
 TFCRC_TIM                              VARCHAR2(20)
 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#
  2  from v$sort_usage;USERNAME SEGTYPE     SEGFILE#    SEGBLK#    EXTENTS   SEGRFNO#
-------- --------- ---------- ---------- ---------- ----------
SYS      LOB_DATA           9      18953          1          1 我们看到这里的SEGFILE#=9,而在v$tempfile是找不到这个信息的: SQL> select file#,rfile#,ts#,status,blocks
  2  from v$tempfile;     FILE#     RFILE#        TS# STATUS      BLOCKS
---------- ---------- ---------- ------- ----------
         1          1          2 ONLINE       38400 我们可以从x$kcctf中获得这些信息,我们可以看到v$tempfile.file#实际上来自x$kcctf.tfnum,实际上是临时文件的顺序号,而绝对文件号是x$kcctf.tfafn,这个才可以和v$sort_usage.segfile#关联:  SQL> select indx,tfnum,tfafn,tfcsz      
  2  from x$kcctf;      INDX      TFNUM      TFAFN      TFCSZ
---------- ---------- ---------- ----------
         0          1          9      38400
         1          2         10      12800 临时表空间的绝对文件号可以通过如下查询获得:   SQL> select tm.file# Fnum ,tf.tfafn AFN,tm.name FName
  2  from v$tempfile tm,x$kcctf tf
  3  where tm.file# = tf.tfnum;      FNUM        AFN FNAME
---------- ---------- --------------------------------------------
         1          9 /opt/oracle/oradata/conner/temp1.dbf
         4         12 /opt/oracle/oradata/conner/temp2.dbf  至于其他就不再赘述。 原文地址:http://www.eygle.com/archives/2006/03/tempfile_and_sort_usage. target="_blank" title="Html" >Html
上一篇:Oracle9i基于视图(view)的约束声名 人气:506
下一篇:解决Restarting死进程QMN0问题一例 人气:988
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐