2014年5月10日土曜日

Smart ScanとStorage Index

Smart ScanとStorage Index

ExadataのSmart Scanでは、データをストレージ側で絞り込んでからDBサーバ側に送ることで、
ストレージのIOを減らすことができ、速く処理することができます。

では、どうやってストレージ側で絞り込みを行うのでしょうか?


Smart Scanによる絞り込みには、Storage Indexを使用します。
Storage Indexは、テーブルの各カラムごと、Regionと呼ばれるデータの区分けごとに
値の最低値と最高値、Nullの有無のデータを格納します。これは自動的に行われるもので、値を制御できるものではありません。

ランダムにデータが入っている場合、多くのRegionを見にいってデータを取って行きますが、
シーケンシャルにデータが入っている場合は、Regionを見に行く回数が少なくて済みます。
これらを念頭にチューニングする必要がありそうです。


AWRレポートでは、Smart Scan関連の2つのメトリックが確認できます。
Cell physical IO bytes saved by storage index
 -Storage Indexによって絞り込まれたIOバイト数
Cell physical IO interconnect bytes returned by smart scan
 -Smart Scanで返されたIOバイト数

上のメトリックと下のメトリックの値がかい離している場合は、storage indexが有効でないことが言えると思います。



ちなみに、Storage Indexを使用しないようにすることもできます。
_kcfis_storageidx_disabled という隠しパラメータを使用します。デフォルトはFalse(使用不可にしない)です。

 alter session set "_kcfis_storageidx_disabled"=true;

0 件のコメント:

コメントを投稿