Posted on 2008-06-15 10:14
詩特林 閱讀(1121)
評論(1) 編輯 收藏 所屬分類:
Oracle
V$FILESTAT
本視圖記錄各文件物理I/O信息。如果瓶頸與I/O相關,可用于分析發生的活動I/O事件。V$FILESTAT顯示出數據庫I/O的下列信息(不包括日志文件):
l 物理讀寫數
l 塊讀寫數
l I/O讀寫總耗時
以上數值自實例啟動即開始記錄。如果獲取了兩個快照,那么二者之間的差異即是這一時間段內活動I/O統計。
V$FILESTAT中的常用列:
l FILE#:文件序號;
l PHYRDS:已完成的物理讀次數;
l PHYBLKRD:塊讀取數;
l PHYWRTS:DBWR完成的物理寫次數;
l PHYBLKWRT:寫入磁盤的塊數;
V$FILESTAT注意項:
l 因為multiblock讀調用,物理讀數和數據塊讀數有可能不同;
l 因為進程直寫,物理寫和數據塊寫也可能不一致;
l Sum(physical blocks read) 近似于v$sysstat中的physical reads;
l Sum(physical blocks written) 近似于v$sysstat中的physical writes;
l 數據讀(由緩存讀比直讀好)由服務進程處理。從buffer cache寫只能由DBWR進行,直寫由服務進程處理。
V$FILESTAT中的連接列
Column View Joined Column(s)
----------- ------------------------- -------------------------
FILE# DBA_DATA_FILES FILE_ID
FILE# V$DATAFILE FILE#
示例:
1.獲得數據文件物理讀寫和數據塊讀寫信息:
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
orderby df.tablespace_name;
注意:盡管oracle記錄的讀寫次數非常精確,但如果數據庫運行在Unix文件系統(UFS)有可能不能表現真實的磁盤讀寫,例如,讀次數可能并非真實的磁盤讀,而是UFS緩存。不過裸設備的讀寫次數應該是比較精準的。