catch-img

DB FILE MULTIBLOCK READ COUNT - 日本エクセム株式会社 Oracleパラメータ


目次[非表示]

  1. 1.基本情報
    1. 1.1.Parameter情報
    2. 1.2.説明
  2. 2.注意
    1. 2.1.System StatisticsとMBRC
    2. 2.2.10gR2での変化
    3. 2.3.10gR2でのBug
  3. 3.関連情報

基本情報

Parameter情報

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パラメータ


CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧