照会オプションを上書きする方法
QAQQINIは、DB2 for i照会エンジンの特定の動作を制御するのに使用できる物理ファイルです。変更することができる照会オプションのリストについては、IBM Knowledge Centerを参照してください。通常は、QAQQINIを使用する必要はありません。IBMのエンジニアが、高性能のオプティマイザーを設計するというすばらしい仕事をしてくれたためです。
時には、特定のジョブの照会属性を変更したいということがあるかもしれません。すべての可能性を処理するために多数のQAQQINIファイルを作成する必要はありません。代わりに、ジョブの中の照会属性を一時的に上書きすることができます。DB2 for iは、この目的のために OVERRIDE_QAQQINIストアード プロシージャーを提供しています。
コード例を使って説明したほうが分かりやすいと思います。以下に、IBMのScott Forstie氏と私とで一緒に使用しているコードを示します。SQL PLストアード プロシージャーの一部として考えてください。
これはどういうことを意味するのでしょうか。OVERRIDE_QAQQINIには、3つのパラメーターがあります。1番目のパラメーターは、どのような処理を行うのかを指定します。
- オプション1は、QTEMPに一時的なオーバーライド ファイルを作成するのに使用します。これは明らかに1番目の手順です。
- オプション2は、照会オプションの1つに値を指定するのに使用します。この例では、オプション2での呼び出しが1つしかありませんが、2つ以上あっても構いません。
- オプション3は、一時ファイルを削除するのに使用します。
PREVENT_ADDITIONAL_CONFLICTING_LOCKSのデフォルト値は*NOです。これは、LOCK TABLEコマンドにもかかわらず、他のジョブがファイルにアクセスすることをシステムが許可する可能性があることを意味します。この例では、上書きすることにより、他のジョブのSALES表へのアクセスを制限しています。
多くのショップでは、ライブラリーQUSRSYSにQAQQINIを適切な値で作成するだけで十分です。OVERRIDE_QAQQINIのおかげで、その1つのファイルですべてを処理できます。