データベースファイルの構成とI/Oの診断(2) --- 表アクセス、ディスクI/Oに関する統計
- 全表走査の関する統計
- フルスキャンはディスクI/O増加に直結するので、不必要に行わないよう調整
- 索引やSQLチューニングで解決されることも多々ある
- 全表走査がメインのバッチなどのセッションは、DB_FILE_MULTIBLOCK_READ_COUNTを一時的に大きくするのも効果的
v$sysstat.name | 説明 |
---|---|
table scans (short tables) | キャッシュされるような小さな表に対するフルスキャン回数。通常LRUリストのMRU側に置かれるので、増えていても問題ない |
table scans (long tables) | キャッシュされないような大きな表に対するフルスキャン回数。通常LRUリストのL側に置かれたままとなり、毎回ディスクI/Oが発生する。増えていたら対策が必要。 |
table scan rows gotten | フルスキャン行数 |
table fetch by rowid | 索引走査行数 |
- ディスクI/Oに関する統計
SQL> select f.name, s.phyrds, s.phyblkrd, s.phywrts, s.phyblkwrt from v$filestat s, v$datafile f where s.file# = f.file# ; NAME PHYRDS PHYBLKRD PHYWRTS PHYBLKWRT ----------------- ---------- ---------- ---------- ---------- /DB/system01.dbf 1624 2533 10798 10798 /DB/undotbs01.dbf 77 77 210474 210474 /DB/cwmlite01.dbf 55 55 53 53 /DB/drsys01.dbf 55 55 53 53 /DB/example01.dbf 95 131 53 53 /DB/indx01.dbf 55 55 53 53 /DB/odm01.dbf 57 57 53 53 /DB/tools01.dbf 55 55 53 53 /DB/users.dbf 524 941 11477 11480 /DB/xdb01.dbf 59 63 53 53 10行が選択されました。
※STATSPACKを使用していれば、表領域ごとに見れてもっと便利