Query Supervisorによってデータベース エンジニアに新たなパワーがもたらされる
来たるBM i 7.4テクノロジー リフレッシュ(TR4)および7.3 TR10のリリースで一番ワクワクする新機能はどれかと言えば、やはりQuery Supervisorということになるでしょう。先日、IBMのDb2 for iビジネス アーキテクトのScott Forstie氏に、このデータベースを管理するための新技術について詳しい話を聞かせてもらいました。
Forstie氏は『 IT Jungle 』に、Query Supervisorは、 IBM が昨日発表したIBM i 7.4 TR4および7.3 TR10でDb2 for iに追加される最大の新機能だと述べています(TRの詳細については、「Big Blue Unveils Spring 2021 IBM i Technology Refreshes」を参照してください)。
では、Query Supervisorとはどのようなものであり、どのようなことを行うのでしょうか。Db2 for iエキスパートのForstie氏に説明してもらいましょう。
「私たちは、Query Supervisorという、SQL Query Engine(SQE)内の新たなツールを開発しました」とForstie氏は述べます。「Query Supervisorは、実行中の照会の監視を行う、SQE内の独自のテクノロジーです。」
Query Supervisor(厳密にはDb2 for iサービスの1つ)は、各照会を監視して、ユーザーによって設定されたリソース消費のしきい値を超えていないかどうかを確認するとForstie氏は述べています。
「一番分かりやすいのは経過時間ではないでしょうか」と彼は述べます。「この照会の実行に、どれくらいの時間が掛かっているかということです。CPU時間、一時記憶域、合計入出力カウントについてはどうでしょうか。これらは、ユーザーが指定するしきい値の4種類のカテゴリーです。」
ユーザーまたはアプリケーションによって、それらのしきい値のいずれかが超えられると、Query Supervisorはデータベース エンジニアに通知を行います。Query Supervisorは、データベース エンジニアにアラートを送信したり、QSYSOPRにメッセージを登録したりするように構成することができ、あるいは、後で調べるために照会を捕捉することもできます。
しかし、Query Supervisorは、単にデータベース照会を監視するのみにとどまるわけではなく、処理を実行するように構成することもできます。Query Supervisorは、照会のしきい値を超えたときに、たとえば自動的に照会を停止するといった処理を行う出口プログラムを呼び出すことができます。
Query Supervisorの一番分かりやすい用途は、暴走照会の停止です。暴走照会というのは、マシンもお手上げになる、不適切に書かれたSQLステートメントが含まれている照会です。
「これまで暴走照会の追跡に関して問題だったのは、その照会が暴走することを推測する必要があったことでした」とForstie氏は述べます。「Query Governorという照会管理プログラムを使用すれば、実行前に照会のリソース消費量の推定を行うことは可能です。ただし、実際には、それでは不十分です。それは推定だからです。」
他にも、活動ジョブ処理(WRKACTJOB)コマンドなど、アクティブな照会のリソース消費を管理者が確認できる方法はあります。しかし、これもまた、暴走照会の問題に対する解決策としては不十分です。
「Query Supervisorを使用しない場合、どのようにして暴走ジョブをコントロールするのでしょうか。常にアクティブなジョブをポーリングすることにより、誰がジョブを実行していて、必要以上のリソースを使用しているのか確認する必要があります。ポーリングによる解決策も万全ではありません。実際、ポーリングによって本番ワークロードの完全性が損なわれてしまうこともあるからです。」
Query Supervisorには、暴走照会の停止以外の用途もあります。たとえば、データベース パフォーマンスの向上に役立てることもできます。Forstie氏は、次のような例を挙げています。
「たとえば、ある照会に述部があり、そこでは、米国の州名と疑問符の一致を調べるとします」と彼は述べます。「さて、接続してデータベース表を調べる場合、その州がカリフォルニア州であるかミネソタ州であるかによってその照会のパフォーマンスは変わってきます。パフォーマンスはデータに大いに依存し、また、索引方針などによっても影響されることになります。」
このようなデータベース照会の最適化は、非常に多くの変数が登場するため、骨の折れる作業となります。IBM i のショップはデータベース エンジニアの採用を増やすか、既存の管理者のデータベース関連技術のスキル アップを図る必要があるとForstie氏が主張し続けてきたのは、1つにはこのことがあったからです。
「本番ワークロードのパフォーマンスの担当者は大変です。こう言われるからです。『ちょっといいですか。この照会を1日に何千回も実行しています。いつもは1秒も掛からないのですが、今日は10秒掛かりました。どうしてそうなったか説明してもらえませんか』」とForstie氏は述べます。「Query Supervisorなら、精密な詳細データが得られます。」
一時記憶域の使用量も、Forstie氏の心配の種の1つです。多くのIBM i アプリケーションが、推奨されているよりも多くの一時記憶域を使用しているのを目にしているからです。これこそ、Query Supervisor向きの仕事です。
「Query Supervisorは、照会ごとの一時記憶域使用量の詳細データを知らせてくれます」とForstie氏は述べます。「ジョブを終了させるというようなことを行う必要はありません。しかし、アプリケーションごと、ユーザーごと、時間帯ごと、その他のメトリクスごとの一時記憶域の使用量に基づいて独自のデータ マートを構築することにより、そのテーマに取り組むための明確な手段が得られます。」
Forstie氏は、IBM i の顧客がQuery Supervisorをあらゆる場面で活用してくれることを期待しています。
「データベース エンジニアがデータベースを管理する方法の、新時代の幕明けだと思います。そして、その意味では、ファイルを管理しているのではなく、データへのアクセスを管理しているということです」と彼は述べます。「こうした新たな洞察が生まれることにもなり、データベース エンジニアがQuery Supervisorでどのようなことを行ってくれるのか私はワクワクしています。」
IBM i のショップが技術者に問題の解決を依頼する際に、十分なデータが提供されないせいでうまく行かないというケースがよくあります。「しかし、技術者に詳細なデータが提供されるとしたら、どうなるでしょうか。おそらく、状況は一変します」とForstie氏は述べます。「彼らは問題を解決してくれるでしょう。データが明確であることによって開かれる扉もあるからです。ともあれ、そうなれば良いと思います。」
ところで、Query Supervisorのターゲットとして一番はっきりしているのは、SQLで書かれた照会です。しかし、Query Supervisorは、非SQLデータベース アクセス方式についても監視の対象としているとForstie氏は述べます。なぜなら、IBM i 7.3および7.4ではそれらのほとんどがSQEを経由するからです。
Query Supervisorは、データベースPTFがリリースされる5月14日に利用可能になります。