データベース統計 (V5R2 以降) 用ツール

V5R2 からデータベース統計というものがサポートされるようになりました。
データベース統計とはどういうものかは、また調べてまとめてみたいと思っていますが、システムのデフォルトでは自動的に取られるようになっています。通常のデータベースでは統計を更新する、といった命令を実行することで取得するようになっていますので、自動的に統計が必要なカラムを識別し、統計の更新をスケジュールしてくれるのはやはり DB2/400 ならではの便利さと言うことができるでしょう。
システムで自動的にメインテナンスされるため、特別に何かを行う必要はない、というものの、やはりどのテーブルのどのカラムに対して統計が取られたのか知りたい、ということもあるでしょうし、事前にもうあるカラムに対して統計を取るように指定したい、ということもあるでしょう。そういう場合のインターフェイスは iSeries ナビゲーターのみになります。コマンド画面や CL プログラムなどからのインターフェイスは API しかありません。

IBM さん、インターフェイスは iSeries ナビゲーターだけで後は API で頑張れというのはちょっと不親切だと思ったのか、ツールとして Command Line and SQL Interfaces for the QDBST* (Database File Statistics APIs) といったものを用意してくれてます。内容については Redbook「Preparing for and Tuning the V5R2 SQL Query Engine (PDF)/(html)」に紹介があります。サポートされている API をそのままコマンドやデータベースのユーザー定義機能にしたものです。もちろんこのツールそのものについて正式なサポートがあるわけではありません。
このツールは http://www-1.ibm.com/support/docview.wss?uid=nas26a07b20f615d02a986256dcd00422142 でも紹介されています。

これらをどんなものかちょっと見てみましょう。


保管ファイルのダウンロードと転送

dbsttools.savf という保管ファイルが上記ページにありますので、ダウンロードして、iSeries に転送します。
今回は DBSTTOOLS という SAVF をあらかじめ作成しておき、それにたいして FTP で PUT する、という形で転送を行いました。

転送後に DSPTOOLS コマンドで内容を見てみると、こんなかんじになります。
SAVLIB コマンドで保管された DBSTCMD というライブラリーが入っていることがわかりますね。DBFSTC でデータベース統計のことを表しています。それぞれ CNLDBFSTC (データベース統計のキャンセル) / CRTDBFSTC (データベース統計の作成) / DLTDBFSTC (データベース統計の削除) / LSTDBFSTC (データベース統計のリスト) になっています。

DBSTCMD ライブラリーの復元

転送後の SAVF から DBSTCMD というライブラリーを RSTLIB します。

LSTDBFSTC UDF の作成

LSTDBFSTC というユーザー定義関数を作成するためには、それを作成するための SQL 文を発行する必要があります。

SQL 文は保管ファイルをダウンロードした元のページにあると思いますが、念のため再録するとこんなものです。
5250 画面での STRSQL で開始する対話型 SQL 画面よりは、iSeries ナビゲーターの「SQL スクリプトの実行」からの方がやりやすいでしょうね。これをそのままコピーして実行させてしまえばいいわけですから。

CREATE FUNCTION DBSTCMD/LSTDBFSTC
( ASPDEV VARCHAR(10), LIBNAM VARCHAR(10), FILNAM VARCHAR(10), MBRNAM VARCHAR(10) )
RETURNS TABLE ( ASPDEV CHAR(10), LIBNAM CHAR(10), FILNAM CHAR(10), MBRNAM CHAR(10), COLNAM CHAR(10), CRTUSR CHAR(10), STALE CHAR(1), AGEMOD CHAR(10), BLKOPT CHAR(1), CARDIN BIGINT, MFVCNT INTEGER, HSTCNT INTEGER, STCID CHAR(32), STCSIZ BIGINT, STCNAM VARCHAR(128) )
RETURNS NULL ON NULL INPUT
NO FINAL CALL
NO DBINFO
EXTERNAL NAME 'DBSTCMD/LSTDBFSTC(LSTDBFSTC)'
LANGUAGE C++ SCRATCHPAD
PARAMETER STYLE DB2SQL
DISALLOW PARALLEL
NOT FENCED
CARDINALITY 1000;

上の SQL 文を「SQL スクリプトの実行」で実行させるには、「JDBC セットアップ」で「命名規則」を「システム (*SYS)」に変更しておく必要があります。

上のように「JDBC セットアップ」を変更した状態で、以下のように上記 SQL 文を実行させます。
結果として、以下のように「ステートメントは正常に実行されました。」というメッセージが出てくれば OK です。

実行結果の確認

実際に実行できるかどうか見てみましょう。
ユーザー定義関数は、インターフェイスに依存しているわけではないので、今度は 5250 での対話型 SQL 画面から実行させてみましょう。
引数はそれぞれ ASP / ライブラリー / ファイル / メンバー で、ブランクも含めて 10 桁きっちり指定する必要があります。
ASP に * を指定すればカレントの ASP になり、*SYSBAS と指定するとシステム ASP の指定になります。ライブラリーはさすがに *ALL とか指定することはできません。次のファイルを指定している限り、*LIBL / *CURLIB / *USRLIBL と指定することができます。ライブラリーの名前が指定されている場合、ファイルに *ALL を指定することができます。さらにメンバーは *FIRST / *LAST / *ALL といった指定ができます。

こんな結果が返ってくれば OK です。

[Top Pageに戻る]

[PR] | ハウスクリーニング葬儀 東京韓国食材SEOアクセス解析ハウスメーカーレンタルオフィスSEO対策消費者金融不動産担保ローン時計車 買取ハワイハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画FX免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージ貸し店舗FX投資信託くりっく365アフィリエイト育毛剤FXホームページ制作デイトレードFXホノルルマラソンベスト ハワイ ホテル レーツバリ島ハワイウエディングHawaii hotelsHawaii Activitiesbhhr
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ.ビジネスクラス ハワイ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - 格安航空券 - 長期滞在 - タイムシェア - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル
[PR] 包茎でお困りの方必見!厳選したクリニックをご紹介!