IBM iつれづれ草|SQLの索引アドバイザー(高橋昌宏)

高橋様 コラムバナー

 

今回は、前回の「SQL」で触れた索引アドバイザーについてお話しします。

Web系アプリ(Java、PHP等)や組み込みSQLプログラムでDBアクセスを行った場合は、パフォーマンス(処理速度)アップのために適切な索引(LF、INDEX)を作成する必要があります。

適切な索引がないと、場合によっては一時索引が作成されます。一時索引はテンポラリー上に索引を作成して、その一時索引を利用してDBのアクセスを利用します。処理前にQTEMPに必要なLFを作成して処理するような感じです。

この一時索引も、PFのレコード件数が多ければ時間もかかり、またCPUも消費します。なので、事前に必要な索引を作成することが重要です。しかし、どのようなキーで索引を作成しておけばいいのかがわかりません。

その悩みを解決してくれるのが、索引アドバイザーです。ACSが発表される前まではiSeries Access上で利用できましたが、現在はACS上にその機能が移植されたので、ACS版での利用手順をお伝えします。

 

手順

(1) システム構成が必要なので、未設定の場合は構成を行う。

 

 

 

(2) Navigator for iを起動する。

 

(3) IBM iのユーザープロファイルとパスワードでログインする。

 

(4)[データベース][データベース][スキーマー]で、対象となるスキーマー(ライブラリー)を追加する。

 

(5) 追加したスキーマーを選択し、表(ファイル)を開く。

 

(6) 索引を調べたいファイルの索引アドバイザーを選択する。

 

(7)勧告リストが表示されるので、勧告キーを確認する。画面には表示されていないが、右側の項目に回数や日付の情報がある。この画面はテスト用に作成しており、通常であればもっと多くの勧告があるはずなので、その中で勧告回数の多いものをターゲットに作成することを推奨する。

 

(8) このキーに従って、LFを作成するか、下記の手順でNaviから索引を作成する。
Naviから実施した場合はDDSソースでの管理外となるので、運用含め考慮が必要である。

作成する名前を入れる。テキストのデフォルトは下記となっているので、Naviから作成されたかの判別の材料になる。厳密にはIndexとLFは別の扱いになるが、必要な索引としては同じ扱いでいいだろう。

 

以上が手順になります。
 
最近はIBM i上でのWebアプリケーションやフリーフォームRPGなど、SQLを使用した開発も増えてきました。その場合、適切な索引を作成し、IBM iのポテンシャルを最大限に引き出して、ストレスのないアプリケーション開発を実行しましょう。

 

~独り言~

先日、ほんとに久しぶり(10年、20年?)にカップ焼きそばを食べました。そこで驚いたのが湯切りの部分が工夫されていて、湯切りがとてもやりやすくなっていたことです。
 
むかーしの記憶では、湯切りがやりにくくて、火傷や麺まで飛び出ないようにと苦労していました。湯を切るといった用途は今も昔も同じなのですが、そこに少しずつ工夫を凝らし改良していくことで、とても利便性が向上します

今あるやり方を当たり前とせず、常に創意工夫を行っていく。システム開発でも当たり前と思っているやり方を見直し、ミスをしない・効率を上げるといったことを考えていく必要があると考えされられた、カップ焼きそばとの久しぶりの再会でした。

 


IBM iつれづれ草

第1回 フリーフォームRPG!!
第2回 SQLをお勧めする4つの理由

 

 

関連リンク

More Posts