v$filestat中PHYRDS负值
来源:互联网 发布:mac如何退出qq 编辑:程序博客网 时间:2024/05/21 10:58
通过set autotrace 的执行计划看出查询v$filestat实际上是查询了X$KCFIO,X$KCCFE
SQL> set autotrace on;
SQL> Select file#,phyrds,phywrts from v$filestat;
FILE# PHYRDS PHYWRTS
----- ---------- ----------
1 175397 12846
2 6838 41451
3 102878 51928
4 722 81
5 983802 19167
6 310961 16126
7 339664 18688
8 204042 16283
9 27524 436
10 26169 647
......
22 -1509449799 4298715
......
执行计划
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 78 | 0 (0)
| 1 | NESTED LOOPS | | 1 | 78 | 0 (0)
| 2 | FIXED TABLE FULL | X$KCFIO | 1 | 52 | 0 (0)
| 3 | FIXED TABLE FIXED INDEX| X$KCCFE (ind:1) | 1 | 26 | 0 (0)
--------------------------------------------------------------------------------
Note
-----
- 'PLAN_TABLE' is old version
统计信息
----------------------------------------------------
8 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
834 bytes sent via SQL*Net to client
257 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
34 rows processed
-- v$fixed_view_definition中看出V$FILESTAT是基于GV$FILESTAT的视图
SQL> select * from v$fixed_view_definition where VIEW_NAME = 'V$FILESTAT';
VIEW_NAME
------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
V$FILESTAT
select FILE# , PHYRDS , PHYWRTS , PHYBLKRD , PHYBLKWRT , SINGLEBLKRDS, READTIM
, WRITETIM, SINGLEBLKRDTIM, AVGIOTIM, LSTIOTIM, MINIOTIM, MAXIORTM, MAXIOWTM f
rom GV$FILESTAT where inst_id = USERENV('Instance')
-- 而GV$FILESTAT是由x$kcfio k,x$kccfe创建的视图
SQL> select * from v$fixed_view_definition where VIEW_NAME='GV$FILESTAT';
VIEW_NAME
------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
GV$FILESTAT
select k.inst_id, k.kcfiofno,k.kcfiopyr,k.kcfiopyw,k.kcfiopbr,k.kcfiopbw, k.kcfi
osbr,k.kcfioprt,k.kcfiopwt,k.kcfiosbt,k.kcfioavg,k.kcfiolst,k.kcfiomin, k.kcfior
mx,k.kcfiowmx from x$kcfio k,x$kccfe f where f.fedup <> 0 and f.fenum=k.kcfiofno
这个就是访问V$FILESTAT 在执行计划中看到x$kcfio k,x$kccfe 表的原因,
因为V$FILESTAT是基于x$kcfio k,x$kccfe 定义的。
--可以看出 X$KCFIO中 KCFIOPYR是NUMBER类型的
SQL> desc X$KCFIO
名称 是否为空? 类型
------------- -------- ------------
ADDR RAW(8)
INDX NUMBER
INST_ID NUMBER
KCFIOFNO NUMBER
KCFIOPYR NUMBER
KCFIOPYW NUMBER
KCFIOSBR NUMBER
KCFIOPRT NUMBER
KCFIOPWT NUMBER
KCFIOSBT NUMBER
KCFIOPBR NUMBER
KCFIOPBW NUMBER
KCFIOCRTR NUMBER
KCFIOCURTR NUMBER
KCFIOAVG NUMBER
KCFIOLST NUMBER
KCFIOMIN NUMBER
KCFIORMX NUMBER
KCFIOWMX NUMBER
KCFIOMBR NUMBER
KCFIOMBT NUMBER
KCFIOCTS NUMBER
-- v$filestat中PHRDS也是NUMBER类型
SQL> desc v$filestat
名称 是否为空? 类型
---------------- -------- --------
FILE# NUMBER
PHYRDS NUMBER
PHYWRTS NUMBER
PHYBLKRD NUMBER
PHYBLKWRT NUMBER
SINGLEBLKRDS NUMBER
READTIM NUMBER
WRITETIM NUMBER
SINGLEBLKRDTIM NUMBER
AVGIOTIM NUMBER
LSTIOTIM NUMBER
MINIOTIM NUMBER
MAXIORTM NUMBER
MAXIOWTM NUMBER
oracle文档中对PHYRDS的解释是Number of physical reads done
我理解为物理读的数量。理论上应该不是负值。出现了负值我认为应该:
1.分散IO.
可能是这个数据文件上的物理读太多了,把这个数据文件上的表move到其它的表空间一部分。
2.优化SQL
找到这个表空间全表扫描多的sql,进行优化。
- v$filestat中PHYRDS负值
- V$FILESTAT
- V$filestat探究
- Oracle--V$FILESTAT
- 动态性能视图:V$FILESTAT
- Oracle动态性能表-(9)-V$FILESTAT
- 学习动态性能表第九篇--V$FILESTAT
- 通过v$filestat查询数据文件的I/O相关属性
- 52.Oracle杂记——Oracle常用动态视图v$filestat
- margin 负值5中应用
- CSS中背景background-position负值定位深入理解
- CSS中背景background-position负值定位深入理解
- CSS中背景background-position负值定位深入理解
- CSS中背景background-position负值定位深入理解
- CSS中背景background-position负值定位深入理解
- IE6中margin-bottom为负值时失效
- lua中os.clock()为何会返回负值
- IE中使用滤镜实现透明度,影响到absolute的负值
- csdn
- 判断单链表是否存在环,和两条链表相交问题
- 全角半角转换 笔记
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- How to setup Apache and mod_python and django
- v$filestat中PHYRDS负值
- 硬盘瓶颈和读写速度测试
- 给Win7加装Telnet
- C 常用字符串函数
- HTML工具
- Asterisk 1.8 队列 分析
- 基于JAVA的RSA算法详解
- Rework 札记
- linux 和unix下SAR命令的用法