AI アシスタントでデータベース稼働状況のサマリーを表示
この記事では前回記事*(Part#1)に引き続き、Db2 AIエディションで利用できるようになったDb2 Genius Hubの主たる機能のうち、
(1)統合Db2管理
(2)エージェント型AIアシスタント
(3)ログ分析
(4)異常検出
(5)深層モニタリングと迅速なトラブルシューティング
(6)スマートなクエリ最適化とパフォーマンスチューニング
(7)高度な自動化とスクリプト
"(2)エージェント型AIアシスタント"でできることをさらにご紹介します。
今回はAIアシスタントでデータベース稼働状況のサマリー(要約)を起点に、関連情報を含めていろいろ質問、指示してみることにします。
*前回記事はこちら。Db2 Genius Hub概要、無料評価版のダウンロードサイトやマニュアルURLもこちらをご参照ください。
さわってみよう Db2 AI エディション #1 〜エージェント型AIアシスタント編 Part#1〜
https://qiita.com/ibm_tk/items/e763bbea3fcf5e8a27a9
データベース稼働状況のサマリーを確認
特定のデータベースの稼働状況のサマリーを知りたいのでAIアシスタントに下記の指示を与えます。ここでは割愛しますが、事前に要約の対象となるデータベースをあらかじめプルダウンメニューから選択しておきます。
データベースの要約
下記の回答が得られました。この回答はサンプルです。お使いのDb2環境によって結果は異なります。日付部分の一部をマスキングしています。
データベースの包括的なサマリーです。パフォーマンスメトリクス、システム設定、および現在のアクティビティを含みます。
データベースは良好な状態で、CPU使用率は平均1%と低く、リソースに余裕があります
過去24時間で3,819件のクエリが実行され、適度なアクティビティレベルを示しています
メモリ使用率は平均73.60%で、やや高めですが正常範囲内です
現在実行中のクエリはなく、システムはアイドル状態です
DB2 11.5.9.0 (Advanced Edition) がLinux上で稼働し、SSL接続が有効化されています
測定期間: 2026年3月XX日から2026年4月YY日まで(過去24時間)
メモリ使用率が73.60%とやや高めですが、メモリ使用のトレンドや詳細な内訳を確認しますか?
メモリ使用のトレンドや詳細な内訳を確認
次に、メモリ使用のトレンドや詳細な内訳を確認してみることにします。
次の指示をAIアシスタントに与えます。
メモリ使用のトレンドや詳細な内訳を確認
次のような結果が得られます。この結果はサンプルです。お使いのDb2環境によって結果は異なります。

上記画面の青色ボタンをクリックすることで、結果をcsvファイルにダウンロードすることも可能です。表計算ソフトでcsvファイルを開いてみると、次のようなデータを確認できます。

I/O待機時間の詳細や特定のテーブルスペースのパフォーマンスを確認
前のステップではメモリ関係の情報が得られました。次にディスクI/Oについて情報を得ることにします。AIアシスタントに下記の指示を与えます。
I/O待機時間の詳細や特定のテーブルスペースのパフォーマンスを確認
下記の回答が得られました。この回答もサンプルです。お使いのDb2環境によって結果は異なります。

上記画面でも青色ボタンが表示されているため、これをクリックすることで、分析結果をcsvファイルにダウンロードすることが可能です。表計算ソフトでcsvファイルを開いてみると、次のようなデータが含まれていることが確認できます。

特定のテーブルスペースで最もスペースを消費しているテーブルを確認
一つ前のステップにて、テーブルスペース"USERSPACE1"の使用率が非常に高いことが判明しました。
ではこの"USERSPACE1"で最もスペースを消費しているテーブルを確認してみます。
次の指示をAIアシスタントに与えてみます。
USERSPACE1で最も容量を消費しているテーブル
こちらの場合も実行結果に青いボタンが表示されます。結果をcsvファイルにダウンロードすることができるので、ダウンロード後、表計算ソフトでcsvファイルを開いてみると、次のようなデータが含まれていることが確認できます。こちらもサンプルです。お使いのDb2環境によって結果は異なります。匿名化のため、テーブル名を加工しています。

統計情報が古いテーブルに対するRUNSTATSを作成
前のステップの結果で統計情報更新日に関する情報も得られました。統計情報が古いテーブルも存在するようです。そこで次の指示をAIアシスタントに与えて、統計情報が古いテーブルに対するRUNSTATS*を作成してみます。
*RUNSTATSは、Db2用のユーティリティで、テーブル・データとインデックスに関する統計情報を収集し、システムカタログ・テーブルに格納します。これにより、Db2のオプティマイザが最適なデータ・アクセスパスを決定するのに役立ちます。特に大規模なデータ変更(LOAD、INSERT、DELETE)後に、RUNSTATSを実行することは、パフォーマンス・チューニングに不可欠と言えます。
統計情報が古いテーブルに対してRUNSTATSを実行し、オプティマイザーのパフォーマンスを改善
次のような結果が得られました。この結果もサンプルです。お使いのDb2環境によって結果は異なります。匿名化のため、スクリーンショットを一部編集しています。

同時にRUNSTATSのベストプラクティスも得ることができました。
RUNSTATSのベストプラクティス:
⁃ WITH DISTRIBUTION - カラム値の分布統計を収集(より正確なカーディナリティ推
定)
⁃ AND DETAILED INDEXES ALL-すべてのインデックスの詳細統計を収集
⁃ 大規模テーブルの場合は、オフピーク時間に実行することを推奨
⁃ 定期的な実行(週次または月次)をスケジュール化することを推奨
これらのコマンドを実行することで、クエリオプティマイザーが最新のデータ分布情報を使用し、より効率的な実行計画を生成できるようになります。
Part#2のまとめ
この記事ではDb2 Genius Hubが提供するエージェント型AIアシスタントを使って下記を実施してみました。
(1)データベース稼働状況のサマリーを確認
(2)メモリ使用のトレンドや詳細な内訳を確認
(3)I/O待機時間の詳細や特定のテーブルスペースのパフォーマンスを確認
(4)特定のテープルスペースで最もスペースを消費しているテーブルを確認
(5)統計情報が古いテーブルに対するRUNSTATSを作成
本記事執筆時においては、AIアシスタントは英語のみ正式にサポートされています。もし、好ましい結果が得られなかった場合、英語での問い合わせ、指示をお試しください。
なお、AIアシスタントは内部で生成AIのメカニズムを使っているため、出力内容に揺らぎがあり、当記事とは異なる傾向の回答、結果になることもございます。