Home » database » SQLチューニングのためのI/O分析

SQLチューニングのためのI/O分析

STATSPACKを使用してSQLチューニングのためのI/O分析をします

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の問題か

バッファキャッシュの問題かのどちらかです

バッファキャッシュの問題であるならば、他のテーブルも影響を受ける可能性がありますので、SQLの問題ではない可能性があります

特定のテーブルやインデックスの場合SQLに問題がある場合が多いです

 

 

One thought on “SQLチューニングのためのI/O分析

Comments are closed.