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
大幅に時間が短縮されました。
関連したトピックス
- クエリ実行とデータベースパフォーマンスの理解 ,そしてそれらがアプリケーションに与える影響 [DPA]
- Database Performance Analyzer (旧Ignite) for SQL Severの主な機能: SQL Serverパフォーマンス・モニター、レスポンス分析ソフト
- レプリケーション検証機能(Validate)によるトランザクション情報取得チェック
- Oracle View(ビュー)のパフォーマンスを高速化する – Database Performance Analyzer (DPA)によるチューニング
- Database Performance Analyzer(旧Ignite)画面のDBやSQLの表示名変更方法
- レプリケーション対象テーブル構成変更後のSyniti Data Replication (旧DBMoto) マッピング対応について
- Database Performance Analyzer (旧Ignite)サーバから問題のあるセッションを切断
- Database Performance Analyzer (旧Ignite)のレスポンス・タイム分析について
- [DB2]トリガーテーブル情報取得手順【リアルタイムレプリケーションツールDBMoto】
- Database Performance Analyzer (旧Ignite) for Oracleユーザ事例:Liquid Digital Media