2018.12.26
DB FILE MULTIBLOCK READ COUNT
目次
基本情報
パラメータ情報
Syntax : DB_FILE_MULTIBLOCK_READ_COUNT = 16 設定方法 : ・Parameter File ・ALTER SYSTEM SET DB_FILE_MULTIBLOCK_READ_COUNT = 16 ・ALTER SESSION SET DB_FILE_MULTIBLOCK_READ_COUNT = 16
バージョンとデフォルト 9iR2 : 8 10gR1: 8 10gR2: Maximum Output 11gR1: Maximum Output
説明
Full Scan(Full Table Scan、Index Fast Full Scan)を実行する際、一度に読み込めるBlock数を決定します。Full Scanの性能を制御する目的で使用されます。
注意
System StatisticsとMBRC
Oracle 9iからWorkload System Statisticsを収集すると、OracleはV$SYSSTATビューとV $ FILESTATビューを利用して、実際のシステムで使用されるMBRC値を求めます。 System Statisticsによって求められたMBRC値はOptimizerがMulti Block I/Oのコストを計算するために使用されます。つまり、System Statisticsが正常に収集された場合には、これ以上のDB_FILE_MULTIBLOCK_READ_COUNTパラメータがOptimizerのコスト計算に考慮されません。ただし、実際のMulti Block I/Oを実行するときは、まだDB_FILE_MULTIBLOCK_READ_COUNTサイズだけ読み込みます。つまり、Optimizerが使用するMBRCと実際の実行時に使用されるMBRCが別に存在する事になります。
もしSystem Statisticsを収集しなければOracleはまだDB_FILE_MULTIBLOCK_READ_COUNTパラメータの値をMulti Block I/Oのコスト計算と実行の両方に使用します。ただし、Oracle 10gR2からDB_FILE_MULTIBLOCK_READ_COUNTパラメータが内部的には_DB_FILE_EXEC_READ_COUNT、_DB_FILE_OPTIMIZER_READ_COUNT、二つのパラメータで区別されて使用されます。
Oracleの基本的な勧告は、Workload System Statisticsを収集し、DB_FILE_MULTIBLOCK_READ_COUNTパラメータの値は、System I/Oパフォーマンスを考慮した最適の値を指定するように求めるものです。これにより、Optimizerのコストの計算に影響を与えることなく、十分に大きいMBRC値を指定することができます。
10gR2での変化
Oracle 10gR2でDB_FILE_MULTIBLOCK_READ_COUNTパラメータと関連し、以下のような変化が生じます。
1.DB_FILE_MULTIBLOCK_READ_COUNTパラメータが内部的には_DB_FILE_EXEC_READ_COUNT、 _DB_FILE_OPTIMIZER_READ_COUNT、二つのパラメータに分かれました。 _DB_FILE_EXEC_READ_COUNTパラメータはMulti Block I/Oの実行時に実際に読んでブロック数を決定します。 一方、_DB_FILE_OPTIMIZER_READ_COUNTパラメータはOptimizerがMulti Block I/Oのコストを計算するときに 使用されます。 2.Oracleは、DB_FILE_MULTIBLOCK_READ_COUNTパラメータの初期値をI/O Bandwidthを考慮した最適の MBRC値(システムごとに異なり、通常、50〜128の間の値である)を指定して _DB_FILE_OPTIMIZER_READ_COUNTパラメータの値には、8を指定します。 これらの特徴をよくAutotuned MBRCとも呼びます。 もしDB_FILE_MULTIBLOCK_READ_COUNTパラメータの初期値が思ったより小さい場合Parameter Fileで DB_FILE_MULTIBLOCK_READ_COUNTパラメータの項目を削除(0に設定するのではなく削除)することにより、 Oracleが最適の値を設定するようにすることができます。
10gR2でのBug
Oracle10gR2では、System LevelでDB_FILE_MULTIBLOCK_READ_COUNT値を変えてもSession Levelでの_DB_FILE_OPTIMIZER_READ_COUNT値が反映されません。ただし、_DB_FILE_EXEC_READ_COUNT値は反映されます。
詳細については、以下のPostを参照してください。
1.Interesting db_file_multiblock_read_count bug
関連情報
1.DB_FILE_EXEC_READ_COUNTパラメータ 1.DB_FILE_OPTIMIZER_READ_COUNTパラメータ