シナリオの例

パフォーマンスが悪い上位 n 個のステートメントに関するレポートを生成

毎晩、バッチ・ジョブは、データベースに対して実行された SQL ステートメントのうち、パフォーマンスが悪い上位 n 個の SQL ステートメントを検出します。 バッチ・ジョブは SQL ステートメントごとに formatsql web API を呼び出し、読みやすいように SQL ステートメントをフォーマットし、 述部に統計でアノテーションを付けます。 また、バッチ・ジョブは、webve web API を呼び出して、SQL ステートメントごとにアクセス・プラン・グラフを生成します。 その後、バッチ・ジョブは、フォーマット済みのステートメント、およびアクセス・プラン・グラフへの URL をすべて収集して E メール・メッセージを作成し、 データベースの責任者である DBA に送信します。 翌朝には、DBA は、この情報をすべて検討できます。

図 1. バッチ・ジョブを使用して SQL ステートメントをフォーマットし、そのステートメントにアノテーションを付け、 そのステートメントのアクセス・プラン・グラフを生成
バッチ・ジョブを使用して SQL ステートメントをフォーマットし、 そのステートメントにアノテーションを付け、そのステートメントのアクセス・プラン・グラフを生成

データベース変更後に SQL ステートメントのオリジナルのアクセス・プランと新しいアクセス・プランを比較

DBA は、照会ワークロードを作成して EXPLAIN するバッチ・ジョブを開始します。 そうすると、毎晩、バッチ・ジョブは、同じ SQL ステートメントから別の照会ワークロードを作成し、 ステートメントを EXPLAIN し、前の EXPLAIN スナップショットのアクセス・プランと、現在の EXPLAIN スナップショットのアクセス・プランを比較します。 最終的にバッチ・ジョブは比較レポートを DBA に E メールで送信します。 翌朝、DBA はレポートを検討し、悪い方向に変化したアクセス・プランを改善するために必要となる処置を計画できます。

図 2. バッチ・ジョブを使用して 2 つの照会ワークロードの EXPLAIN スナップショットを比較
バッチ・ジョブを使用して 2 つの照会ワークロードの EXPLAIN スナップショットを比較

フィードバック