SQLチューニングは、データベースのパフォーマンスを向上させるために欠かせません。パフォーマンスの根本的な原因は、SQL文による可能性が高いからです。
IgniteはSQLチューニングにも役立ちます。今回は得た情報からSQLチューニングを行なう例をご紹介します。
まず今回使用するサンプルテーブルは以下のようなものです。
テーブル名は”TOSHIHIRO.EMPLOYEE_TEST”で400万件のレコードが入っている状態です。データベースはOracleを使用します。
・E_ID:社員のIDナンバー [ PK (プライマリーキー) 付与 ]
・E_NAME:社員の名前
・E_SALARY:社員の年収
このテーブルから社員の月収が一千万以上の社員情報のみ抽出します。以下のようなSQL文を実行してみます。
SQL > select * from TOSHIHIRO.EMPLOYEE_TEST where E_SALARY/12>=10000000
約1.2秒かかっています。Igniteを使用して、このSQL文を調べてみます。

上の棒グラフにより、かかった時間と、どの要因によるものかが特定できます。 今回は赤いのでMemory/CPUによるものです。クリックすると解決策が掲示されます。

解決策から索引を付与することにより、時間を短くすることができることがわかります。 SQL Dateから今回のSQL文の実行経過も確認できます。

索引を使用するため、SQLチューニングを行った場合の効果も確認できます。

索引を付与したことにより、Costの値が小さくなってることが確認できます。
実際にSQLチューニングを行った、以下のSQL文を実行します。
SQL > select * from TOSHIHIRO.EMPLOYEE_TEST where E_SALARY>=10000000*12
大幅に時間が短縮されました。




RSSフィードを取得する