学习动态性能表第九篇--V$FILESTAT
本视图记录各文件物理I/O信息。如果瓶颈与I/O相关,可用于分析发生的活动I/O事件。V$FILESTAT显示出数据库I/O的下列信息(不包括日志文件):
物理读写数
块读写数
I/O读写总耗时
以上数值自实例启动即开始记录。如果获取了两个快照,那么二者之间的差异即是这一时间段内活动I/O统计。
V$FILESTAT中的常用列:
FILE#:文件序号;
PHYRDS:已完成的物理读次数;
PHYBLKRD:块读取数;
PHYWRTS:DBWR完成的物理写次数;
PHYBLKWRT:写入磁盘的块数;
V$FILESTAT注意项:
因为multiblock读调用,物理读数和数据块读数有可能不同;
因为进程直写,物理写和数据块写也可能不一致;
Sum(physical blocks read) 近似于v$sysstat中的physical reads;
Sum(physical blocks written) 近似于v$sysstat中的physical writes;
数据读(由缓存读比直读好)由服务进程处理。从buffer cache写只能由DBWR进行,直写由服务进程处理。
V$FILESTAT中的连接列
Column View Joined Column(s)
----------- ------------------------- -------------------------
FILE# DBA_DATA_FILES FILE_ID
FILE# V$DATAFILE FILE#
示例:
获得数据文件物理读写和数据块读写信息:
select df.tablespace_name name,
df.file_name "file",
f.phyrds pyr,
f.phyblkrd pbr,
f.phywrts pyw,
f.phyblkwrt pbw
from v$filestat f, dba_data_files df where f.file# = df.file_id
order by df.tablespace_name;
注意:尽管oracle记录的读写次数非常精确,但如果数据库运行在Unix文件系统(UFS)有可能不能表现真实的磁盘读写,例如,读次数可能并非真实的磁盘读,而是UFS缓存。不过裸设备的读写次数应该是比较精准的。