ablog

不器用で落着きのない技術者のメモ

v$sysstat の table scans (long tables) と table scans (short tables) ってなんだ?

名前 クラス 説明
table scans (long tables) 64 短い表の基準を満たさない表として、長い表を(逆に短い表も)定義できる。短い表の説明を、table scans (short tables)に示す。
table scans (short tables) 64 オプティマイザ・ヒントがOracleの行ソース・アクセス・レイヤーまで下降することによって、長い表を(逆に短い表も)定義できる。表でCACHEオプションを設定しておく必要がある。
統計情報の説明

ちょっとよくわかんないですね。

大規模表が全表走査でアクセスされた回数
Instance Activity Stats の table scans (long tables)
大規模表(Oracle8i:DB_BLOCK_BUFFERの2%、もしくは4 BLOCKより大きな表、Oracle9i以降:20 block もしくは _db_block_buffers/50より大きな表)が全表走査でアクセスされた回数
この値が高い場合、全表走査が不要なSQLが存在しているかどうかをSQL情報から確認します。
大規模表の全表走査が必要な場合は、CACHE句を指定してバッファキャッシュのMRU側に配置したり、初期化パラメータDB_FILE_MULTIBLOCK_READ_COUNTを調整することを検討します。

...

小規模表が全表走査でアクセスされた回数
Instance Activity Stats の table scans (short tables)
小規模表(Oracle8i:DB_BLOCK_BUFFERの2%、もしくは4 BLOCKより小さな表、Oracle9i以降:20 block もしくは _db_block_buffers/50より小さな表)が全表走査でアクセスされた回数
定期的に監視することでアプリケーションからのアクセス傾向の変化を確認できます

http://perfopy.ashisuto.co.jp/samples/atmarkit/atmarkit_part_shorttime5.html

こっちのほうがわかりやすいな。
要するに、データブロックの数で table scans (long tables) と table scans (short tables) に分けて統計情報を収集しているってことね。