SQLチューニングのためのI/O分析について
STATSPACKはOracleチューニングを行う上で重要な情報を取得できます
ここではSTATSPACKを使用してSQLチューニングのためのI/O分析をします
Physical Reads(物理読込)とLogical Reads(論理読込)
Oracleの場合のI/Oとはディスクからの読込であるPhysical Reads(物理読込)とメモリ(SGA)からの読込であるLogical Reads(論理読込)があります
書込みは読込に比べ圧倒的に少ないので問題になることは少ないです
SQL分析で解説したSQL ordered by Gets(バッファ読込の多いSQL)との関係を分析します
STATSPACKのSegments by Logical Readsの項目を分析します
この項目のObject Nameがオブジェクト名になります
Logical Reads(バッファ読込)が多いオブジェクト順に表示されます
つまり、そのオブジェクト(テーブルやインデックス)が他に比べて高い数値であれば問題がある可能性があります
問題SQLがそのテーブルやインデックスを使用しているのであれば、明らかにそのSQLに問題あることが分かります
Logical Reads(バッファ読込)が多いテーブルはラッチ競合のホットブロックになっている可能性が考えられます
次に
SQL分析で解説したSQL ordered by Reads(物理読込の多いSQL)との関係を分析します
STATSPACKのSegments by Physical Readsの項目を分析します
この項目のObject Nameがオブジェクトになります
Physical Reads(物理読込)が多いオブジェクト順に表示されます
SQLの問題かバッファキャッシュの問題か
Physical Reads(物理読込)が多い場合、大量に読まなければならないSQLの問題か
バッファキャッシュの問題かのどちらかです
バッファキャッシュの問題であるならば、他のテーブルも影響を受ける可能性がありますので、SQLの問題ではない可能性があります
特定のテーブルやインデックスの場合SQLに問題がある場合が多いです
One thought on “SQLチューニングのためのI/O分析”-
ピンバック: STATSPACK – データベース研究室
Comments are closed.