IBMが提供するSQLサンプルへのアクセス
近年のIBM i では、実運用に即使えるSQLサンプルが多数提供されている。
IBM Knowledge Centerの記載はなぜかサポート終了済みのIBM i Navigator(Windowsのデスクトップアプリ)からの操作例となっているが、ACSでSQLスクリプト実行画面の「例から挿入」アイコンをクリックし、サンプルにアクセスすれば利用可能である(図表1)。
これらのサンプルは、IBM i サービスやDb2 for i サービス、Db2 Mirror など特化した機能向け、もしくはDb2 for iの一般操作向けのDDL、DM、DCLのサンプルなど、すぐに利用できるように提供されている。
以下では、IFS管理に関連するサンプルをそのまま実行した結果を紹介する。
IFSの使用状況の確認
SYSTOOLS for youカテゴリ/Analyze IFS storage consumption
最初のサンプルはDb2 for iではないのだが、上記の操作からSYSTOOLS for youカテゴリを選択すると、Analyze IFS storage consumption というサンプルが見つかる。
これをSQLスクリプトの実行画面にコピー&ペーストして実行すると、以下の①~④のように4つの結果を取得できる。
繰り返すが、今回IBM提供サンプルにまったく修正を加えずに実行している。SQLなので自由にカスタマイズして実行可能だ。
サンプルの冒頭では、CLコマンドでIFS情報を取得(RTVDIRINFコマンド)しているが、この時だけCPU使用率はじめシステム負荷がかかるので、実行のタイミングは注意してほしい。
① ストリーム・ファイル単位でのサイズ情報
List all objects and directories,in order with their sizes というコメントのあとのSQL(図表2)を実行すると、ストリーム・ファイル単位のサイズを降順で取得できる。
② 個別のディレクトリ単位でのサイズ情報を取得
2つ目のサンプル(Summarize the size count at the directory levelsのあとのSQL)を実行すると、1つ1つのIFSディレクトリ単位のサイズを降順で取得できる(図表3)。
③ サブディレクトリを含んだディレクトリ単位のサイズ情報を取得
次のサンプル(Summarize the size of directories including any subdirectory trees)を実行すると、図表4のように配下のサブディレクトリも含めた各ディレクトリのサイズ情報を取得できる。
図表4で結果欄の第1行目は親ディレクトリ‘(..X11)、2行目は子ディレクトリ(..X11/fonts)、3行目は孫ディレクトリ(..X11/fonts/TrueType)の関係になっており、親ディレクトリには子、孫ディレクトリサイズが含まれている。
④ ディレクトリ内のオブジェクト数を取得
次のサンプル(Summarize the object counts at each directory level)を実行すると、図表5のようにディレクトリに含まれるIFSオブジェクトの数を取得できる。
以上はすべて、/QSYS.LIB以外のIFS全体を対象に実行しているが、SQLの条件を変えて/QIBM以下を除外したり、ユーザー任意のアプリケーションディレクトリを指定したりすることでいろいろと応用できる。
IFS特定ディレクトリ配下にあるサイズの大きい10ファイルを表示
IBM i サービス/IFS -10 largeest files under a subdir and tree
これはAnalyze IFS storage consumptionと似ているが、よりシンプルに指定したディレクトリ配下でサイズの大きいトップ10のリストを返すサンプルである(図表6)。
著者
佐々木 幹雄氏
日本アイ・ビー・エム株式会社
パワーシステムテクニカルセールス
シニアITスペシャリスト
AS/400利用のお客様担当SEから出発し、さまざまなテクニカル職種を担当。現在はPower Systemsはじめインフラ提案・アーキテクチャ設計を主に担当している。
[i Magazine・IS magazine]