--前回はブロックサイズの決定基準として、以下の1.)、2.)に関して検証した。今回は3.)の行連鎖がどれほどパフォーマンスに影響を与えるかを検証してみたい。検証の対象は全件検索ではなく、インデックス検索の場合とする。(今回はインデックスを使用したレンジスキャンを考慮していない)まず以下の環境を作成することにする。1.ブロックサイズが2Kと4Kと16Kの3つのテーブルスペースを作成する。2.各テーブルにテーブル名だけが違うまったく同一のテーブルを作成する。(1レコード長の平均サイズは約3204バイト)4.SUBNOにインデックスを作成する。VARCHAR2(4000)--------------------------------------データの挿入は以下のSQL文で行なった。連鎖が発生し、ブロックサイズ4Kでは行連鎖が発生せず、1ブロックに収まる容量であるからである。これにより、ブロック内の空き領域の違いによるパフォーマンスの差が出ないようにしている。列(SUBNO)に、列(NO)を100で割った余りを挿入したのは、検索時のwhere句で条件を指定し、100件おきにデータを取得する為である。ブロックサイズ2Kではすべての行で連鎖が発生し、ブロックサイズ4K、16Kでは連鎖が発生していないことは、以下のSQL文でに確認済みである。始めに、10万件のデータの中から1000件のデータを検索して処理時間を計測する。すべてのデータをディスクから読み込む場合(1回目)と、データベース・バッファの上から取得する場合(2回目)で処理時間を計測した。今回の統計情報はすべて、”SQL_TRACE”を”TRUE”にして取得している。0.05(0.03)1回目(ディスクからの読み込み):・ブロックサイズが16Kの処理が著しく遅い。データ量)が多い為である。・ブロックサイズが16Kの場合、CPUの使用率が著しく高い。