L
o
a
d
i
n
g
.
.
.

ホーム

お知らせ

製品・ソリューション

サービス

導入事例・パートナー

EXEM Academy・ブログ

会社情報

採用情報

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

PHP Code Snippets Powered By : XYZScripts.com