以前AWRでどれだけsmart scanによるセルサーバ(ストレージ)への処理オフロードでIOを絞ることができたかを書かせていただきましたが、
SQL単位で確認する方法を調べてみました。
Exadataでは、v$sqlで以下のカラムが追加となっています。
IO_CELL_OFFLOAD_ELIGIBLE_BYTES : セルサーバ(ストレージ)でフィルタリングが可能なバイト数
IO_CELL_UNCOMPRESSED_BYTES : セルサーバ(ストレージ)にオフロードされる非圧縮バイト数
IO_CELL_OFFLOAD_RETURNED_BYTES : セルサーバ(ストレージ)よりオフロードされたバイト数
まず、IO_CELL_OFFLOAD_ELIGIBLE_BYTESがゼロの場合は、セルサーバよりオフロードされません。
IO_CELL_OFFLOAD_ELIGIBLE_BYTESがゼロでないとき、
IO_INTERCONNECT_BYTESに実際のやりとりされたバイト数が出てくるので、この値がIO_CELL_OFFLOAD_ELIGIBLE_BYTESより小さいほどsmart scanが効いていることになります。
また、IO_CELL_UNCOMPRESSED_BYTESではHCCによる圧縮を解凍したバイト数が表示されますので、PHYSICAL READに対して桁が大きいような場合はHCCが効いていることになります。