QUERY属性の変更 (CHGQRYA)
実行可能場所: すべての環境 (*ALL) スレッド・セーフ: はい |
パラメーター 例 エラー・メッセージ |
QUERY属性変更(CHGQRYA)コマンドは,ジョブで実行されるデータベース照会と,データベース・ファイルのキー付きアクセス・パスの作成,再ビルド,および保守の属性を指定します。データベース照会には,SQLビューのオープンとSQLデータ操作ステートメントの実行が含まれます。
制約事項:
- このコマンドを使用するには,ジョブ制御(*JOBCTL)特殊権限を持っているか,あるいはSystem iナビゲーターのアプリケーション管理を介してIBM IのSQL管理者機能の使用を許可されている必要があります。また,機能ID QIBM_DB_SQLADMを指定した機能使用法変更(CHGFCNUSG)コマンドを使用することにより,許可されるユーザーのリストを変更することもできます。
上 |
パラメーター
キーワード | 記述 | 選択項目 | ノーツ |
---|---|---|---|
JOB | ジョブ名 | 単一値: * その他の値: 修飾ジョブ名 |
オプショナル, キー |
修飾子 1: ジョブ名 | 名前 | ||
修飾子 2: ユーザー | 名前 | ||
修飾子 3: 番号 | 000000-999999 | ||
QRYTIMLMT | QUERY処理時間限界 | 0-2147352578, *SAME, *NOMAX, *SYSVAL | オプショナル |
DEGREE | 並行処理度 | 単一値: *SAME, *NONE, *IO, *OPTIMIZE, *MAX, *SYSVAL, *ANY その他の値: 要素リスト |
オプショナル |
要素 1: 処理オプション | *NBRTASKS | ||
要素 2: タスクの数 | 2-9999 | ||
ASYNCJ | 非同期ジョブの使用状況 | *SAME, *DIST, *LOCAL, *ANY, *NONE | オプショナル |
APYRMT | リモートへのCHGQRYAの適用 | *SAME, *YES, *NO | オプショナル |
QRYOPTLIB | QUERY オプション・ファイル・ライブラリー | 名前, *SAME | オプショナル |
QRYSTGLMT | 一時記憶域限界の照会 | 0-2147352578, *SAME, *NOMAX | オプショナル |
上 |
ジョブ名 (JOB)
QUERY属性の変更を行うジョブを指定します。
単一値
- *
- CHGQRYAコマンドを実行するジョブのQUERY属性が変更されます。
修飾子1: ジョブ名
- 名前
- そのQUERY属性を変更するジョブの名前を指定します。ジョブのユーザー名またはジョブ番号の修飾子が指定されていない場合,指定された単純なジョブ名を検出するために,現在システム中にあるすべてのジョブが検索されます。指定されたジョブ名が重複して見つかる場合は,ジョブのユーザー名またはジョブ番号を指定して,変更するジョブを一意的に識別できるようにする必要があります。
修飾子2: ユーザー
- 名前
- そのQUERY属性を変更するジョブのユーザーの名前を指定します。
修飾子3: 番号
- 000000から999999
- そのQUERY属性を変更するジョブの番号を指定します。
上 |
QUERY処理時間限界 (QRYTIMLMT)
QUERYの処理に必要な見積経過秒数を基にして,開始できるデータベースQUERYの限界を指定します。
ジョブのQRYTIMLMT属性の初期値は*SYSVALです。
- *SAME
- 値は変更されません。
- *NOMAX
- 最大見積経過秒数はありません。
- *SYSVAL
- QUERY時間制限はシステム値QQRYTIMLMTから取り出す必要があることを指定します。
- 0から2147352578
- QUERYを実行するために必要な見積経過秒数に対して検査する最大値を指定してください。推定経過秒数がこの値より大きい場合には,QUERYは開始されません。
0が指定された場合,すべてのデータベースQUERYは,CPA4259照会メッセージを発行するか,または,QUERY GOVERNOR EXIT POINTで登録されていれば出口プログラムを呼び出します。パフォーマンスが向上するようにデータベースQUERYを調整する際には,QUERYの時間制限を0に設定することが役立つことがあります。CPA4259照会メッセージの技術的説明を使用するか,データベース・モニターの開始(STRDBMON)コマンドのFTRQRYGOVRパラメーターを使用して活動化されている場合はデータベース・モニターを使用して,QUERYによって使用されるアクセス・プランのタイプを説明できます。
上 |
並行処理度 (DEGREE)
並列処理オプションと,ジョブでデータベース照会およびデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,および保守を実行時に使用できるタスク数(任意)を指定します。
指定された並列処理オプションは,使用できる並列処理のタイプを判別します。並列処理のタイプには次の2つがあります。
- 入出力(I/O)並列処理
入出力並列処理によって,データベース・マネージャーは各QUERYの複数のタスクを使用して,I/O処理を行うことができます。中央演算処理装置(CPU)の処理は,やはり逐次に行われます。
- 対称マルチプロセス(SMP)
SMPは,QUERYを並行して実行するタスクにCPUとI/O処理の両方を割り当てます。実際のCPUの並列性では,複数のプロセッサーのあるシステムが必要となります。SMPの並列性を使用できるのは,システム機構のDB2対称マルチプロセッシングが導入済みである場合のみです。
SMPの並列性を使用すると,レコードを戻す順序に影響を与えることができます。到着順またはキー順アクセス・パス順のデータベース照会で戻されるレコードに依存していて,照会の順序付けが明示的に定義されていないアプリケーションは,SMP処理を使用できる並列処理オプションを指定したジョブでは実行しないでください。
ジョブのDEGREE属性の初期値は*SYSVALです。
単一値
- *SAME
- 値は変更されません。
- *NONE
- データベースQUERY処理,あるいはデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,または保守では,並列処理を使用することはできません。
- *IO
- データベースQUERY最適化プログラムがQUERYに対して入出力並行処理の使用を選択した時には,任意の数のタスクを使用することができます。SMP並行処理を使用することはできません。
- *OPTIMIZE
- QUERY最適化プログラムは,入出力並列処理またはSMP並行処理に対して任意の数のタスクの使用を選択し,QUERYあるいはデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,または保守を処理することができます。SMP並列処理は,システム機構であるDB2対称マルチプロセッシングが導入されている場合にのみ使用されます。並行処理の使用および使用するタスク数は,そのシステムで使用可能なプロセッサーの数,そのジョブを実行しているプールで使用可能な活動メモリー容量のこのジョブに対する割り当て,およびQUERYまたはデータベース・ファイルのキー付きアクセス・パスの作成または再ビルドに必要な経過時間がCPU処理または入出力資源によって制限されるかどうかによって決められます。QUERY最適化プログラムは,プール内のメモリーのうちこのジョブに対する割り当てに基づいて経過時間を最小のものにします。
- *MAX
- QUERY最適化プログラムは,QUERYの処理のために入出力並列処理またはSMP並行処理のいずれかの使用を選択します。SMP並列処理は,システム機構であるDB2対称マルチプロセッシングが導入済みの場合にのみ使用されます。QUERY最適化プログラムによって行われる選択は,パラメーター値*OPTIMIZEの場合に行われる選択と類似していますが,最適化プログラムが,プール内のすべての活動メモリーをQUERY,あるいはデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,または保守を処理するために使用できると見なす点が異なります。
- *SYSVAL
- 使用される処理オプションを,システム値QQRYDEGREEの現在の値に設定する必要があることを指定します。
- *ANY
- この値には*IOと同じ意味があります。*ANY値は前のリリースとの互換性のために維持されます。
要素1: 処理オプション
- *NBRTASKS
- SMP並列処理に使用するタスク数は,DEGREEパラメーターの2番目のパラメーターで指定します。
要素2: タスクの数
- 2から9999
- QUERY最適化プログラムがQUERYを処理するSMP並列処理を使用することを選択したときに使用されるタスク数を指定してください。入出力の並列性も使用可能です。SMP並列処理は,システム機構であるDB2対称マルチプロセッシングが導入されている場合にのみ使用されます。
システム上で使用可能なプロセッサーの数より少ないタスク数を使用すると,指定のQUERYあるいはデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,または保守の実行に同時に使用されるプロセッサーの数が制限されます。より大きいタスク数によって,QUERYあるいはデータベース・ファイルのキー付きアクセス・パスの作成,再ビルド,または保守は,QUERYの実行のためにシステム上で使用可能なプロセッサーのすべてを確実に使用することができるようになります。タスク数が多すぎると,活動メモリーのコミットメントとタスクのすべてを管理するためのオーバーヘッド・コストが多くなり過ぎるために,パフォーマンスが低下する場合があります。
上 |
非同期ジョブの使用状況 (ASYNCJ)
ジョブでのデータベース照会の処理を容易にするために非同期(一時書き出しプログラム)ジョブを使用できる環境を指定します。
指定された使用オプションは,照会の完了に役立てるために並行して実行している非同期ジョブを使用できるデータベース照会のタイプを判別します。
非同期ジョブはシステム上の別個のジョブで,データベース照会を実行しているジョブからの照会要求を処理します。それぞれの要求で,非同期ジョブは,要求を処理して結果を一時ファイルに入れます。次に,主ジョブがこの中間の一時ファイルを使用してデータベース照会を完了します。
非同期ジョブを使用する利点は,主ジョブがデータベース照会の別のステップを処理している時に同時に(並行して)その要求を処理できることにあります。非同期ジョブを使用する欠点は,主ジョブと同様に処理できない状況に遭遇する場合があることです。例えば,非同期ジョブは,それを取り消さなければならない照会メッセージを受け取ることがありますが,しかし,主ジョブはメッセージを無視して続行することを選択できます。
非同期ジョブを使用できるデータベース照会には次の2つの異なるタイプがあります。
- 分散QUERY
これらは分散ファイルに関係するデータベース照会です。分散ファイルは,システム機構であるDB2マルチシステムを介して提供されます。
- ローカルQUERY
これらはデータベース照会が実行されるシステム内部のファイルのみに関係するデータベース照会です。
ジョブのASYNCJ属性の初期値は*LOCALです。
- *SAME
- 値は変更されません。
- *DIST
- 非同期ジョブは分散ファイルに関係するデータベース照会に使用されます。
- *LOCAL
- 非同期ジョブはデータベース照会が実行されるシステム内部のファイルのみに関係するデータベース照会に使用されます。
さらに,分散ファイルと関係したQUERYの場合は,このオプションによって必要な通信を非同期に行うことができます。これにより,分散ファイルの照会に関係した各システムは,他のシステムと同時(並列)に照会の部分を実行することができます。
- *ANY
- 非同期ジョブは任意のデータベース照会に使用されます。
- *NONE
- 非同期ジョブはデータベース照会処理に使用することはできません。
さらに,分散ファイルに関係している照会のすべての処理は同期に行われます。したがって,システム間並列処理は行われないことになります。
上 |
リモートへのCHGQRYAの適用 (APYRMT)
分散ファイルに関係したデータベース照会において,ジョブと関連したリモート・システムのジョブに照会属性を適用するかどうかを指定します。適用される照会属性は,このコマンドからの属性およびQUERY オプション・ファイル・ライブラリー (QRYOPTLIB)パラメーターで指定されるライブラリーにあるQAQQINIファイルに指定された属性です。
指定されたオプションは,ジョブに指定された照会属性が1つまたは複数の分散ファイルに適用可能なシステムの関連ジョブに適用されるかどうかを判別します。
ジョブのAPYRMT属性の初期値は*YESです。
- *SAME
- 値は変更されません。
- *YES
- ジョブの照会属性は,分散ファイルに関係するデータベース照会の処理に使用されるリモート・ジョブに適用されます。適用される照会属性は,このコマンドで指定される属性およびQRYOPTLIBパラメーターで指定されるライブラリーにあるQAQQINIファイルの属性です。*SYSVALを指定された属性の場合には,リモート・システムのシステム値がそのリモート・ジョブに使用されます。このオプションでは,このジョブにCHGQRYAが使用されている場合には,リモート・ジョブにCHGQRYAコマンドを使用する権限が必要です。
- *NO
- ジョブのCHGQRYA属性はリモート・ジョブに適用されません。リモート・ジョブはそのシステムで関連付けられた属性を使用します。
上 |
QUERY オプション・ファイル・ライブラリー (QRYOPTLIB)
QUERYオプション・ファイル(QAQQINI)が現在入っているか,あるいはQUERYオプション・ファイルを入れるライブラリーを指定します。
QUERYオプション・ファイルは,指定されたジョブの中でQUERYがどのように実行されるかを決定するQUERY最適化プログラムによって使用される属性を設定または変更するために使用されます。
QUERYオプション・ファイルは,ファイルQAQQINIに対して行われた変更を処理するために,そのファイルと関連したシステム提供トリガー・プログラムを使用します。このファイルのテンプレートは,既に添付されている基本トリガー・プログラムとともにQSYSライブラリーの中に入れて出荷されています。QUERYオプション・ファイルを正しく保守および使用するためには,オブジェクト複製(CRTDUPOBJ)を使用して,このパラメーターに指定されたライブラリーの中にファイルQAQQINIを作成することをお奨めします。
詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「DB2 for i SQL プログラミング」トピック・コレクションまたはIBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「データベース」カテゴリーを参照してください。
ジョブに対するQRYOPTLIB属性の初期値はQUSRSYSです。
- *SAME
- 値は変更されません。
- 名前
- QAQQINI QUERYオプション・ファイルが入っているか,または入れられるライブラリーの名前を指定してください。
上 |
一時記憶域限界の照会 (QRYSTGLMT)
データベース照会のための一時記憶域の制限を指定します。QUERYで指定した記憶域の容量以上が使用される場合には,そのQUERYの開始は許可されません。値はメガバイト数で指定します。
ジョブのQRYSTGLMT属性の初期値は*NOMAXです。
- *SAME
- 値は変更されません。
- *NOMAX
- 最大一時記憶域の制限はありません。
- 0から2147352578
- 使用できる一時記憶域の最大容量を指定します。この値は,QUERY最適化プログラムで計算されたそのQUERYの実行に要する一時記憶域の推定容量と突き合わされます。一時記憶域の推定容量がこの値より大きい場合には,QUERYは開始されません。値はメガバイト数で指定します。
0が指定された場合,ほとんどのデータベースQUERYは指定された一時記憶域の制限を超え,CPA4259照会メッセージを発行するか,または,QUERY GOVERNOR EXIT POINTで登録されていれば出口プログラムを呼び出すことになります。パフォーマンスが向上するようにデータベースQUERYを調整する際には,QUERYの一時記憶域の制限を0に設定することが役立つことがあります。CPA4259照会メッセージの技術的説明を使用するか,データベース・モニターの開始(STRDBMON)コマンドのFTRQRYGOVRパラメーターを使用して活動化されている場合はデータベース・モニターを使用して,QUERYによって使用されるアクセス・プランのタイプを説明できます。
上 |
例
例1: QUERY時間制限を変更
CHGQRYA QRYTIMLMT(60)
このコマンドは,QUERY時間制限を60秒に変更します。
例2: QUERYとデータベースの並列処理を制御
CHGQRYA DEGREE(*IO)
このコマンドは,データベースQUERY最適化プログラムがQUERYに対して入出力並行処理の使用を選択した時に,任意の数のタスクを使用することを指定します。SMP並行処理を使用することはできません。
例3: QUERY並列処理を制御
CHGQRYA DEGREE(*OPTIMIZE)
このコマンドは,QUERY,データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を処理するために,QUERY最適化プログラムが入出力またはSMP並列処理に任意の数のタスクを選択して使用できることを指定します。SMP並列処理を使用するのは,システム機構であるDB2対称マルチプロセッシングが導入されている場合だけです。
例4: QUERY並列処理を制御
CHGQRYA DEGREE(*MAX)
このコマンドは,QUERY最適化プログラムがプールのすべての活動メモリーを使用してQUERY, データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を処理することを前提とできることを指定し,またQUERY,データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を処理するために,QUERY最適化プログラムが入出力またはSMP並列処理に任意の数のタスクを選択して使用できることを指定します。SMP並列処理を使用するのは,システム機構であるDB2対称マルチプロセッシングが導入されている場合だけです。
例5: QUERYタスク数を制御
CHGQRYA DEGREE(*NBRTASKS 12)
このコマンドは,QUERY,データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を処理するために,QUERY最適化プログラムがSMP並列処理の使用を選択した時に,12タスクが使用されることを指定します。入出力の並列処理も使用可能です。SMP並列処理を使用するのは,システム機構であるDB2対称マルチプロセッシングが導入されている場合だけです。
例6: QUERY並列処理を制御
CHGQRYA DEGREE(*SYSVAL)
このコマンドは,QUERY,データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を実行する時に,システム値QQRYDEGREEの現行の値で,QUERY,データベース・ファイルのキー順アクセス・パスの作成または再ビルド,あるいはデータベース・ファイルの入出力キー順アクセスの保守を最適化する必要があることを指定します。
例7:分散ファイル処理用に非同期ジョブを使用不可にする
CHGQRYA ASYNCJ(*LOCAL)
このコマンドは,分散ファイルを含むQUERYに非同期ジョブを使用しないようにします。
例8:非同期ジョブを使用不可にする
CHGQRYA ASYNCJ(*NONE)
このコマンドは,すべてのQUERYに非同期ジョブを使用しないようにします。さらに,分散ファイルと関係したQUERYの場合は,リモート・システムへの通信が同期方式で実行されます。
例9: QUERYオプション・ファイル・ライブラリーを指定
CHGQRYA QRYOPTLIB(QUSRSYS)
このコマンドは,QUERYオプション・ファイル(QAQQINI)をライブラリーQUSRSYSで検索することを指定します。
注: STRDBG UPDPROD(*YES)に追加してこのコマンドを使用します。これによってすべての最適化プログラム・デバッグ・メッセージ(ローカルおよびリモート)がこのジョブのジョブ・ログに示されることになります。
例10:異なるジョブのQUERYオプション・ファイル・ライブラリーを指定
CHGQRYA QRYOPTLIB(LIB41) JOB(134543/QPGMR/DSP01)
このコマンドは,ライブラリーLIB41でジョブ番号134543のQUERYオプション・ファイル(QAQQINI)を検索することを指定します。ジョブ名はDSP01で,QPGMRという名前のユーザーによって開始されたものです。このライブラリーは,複数の独立ASP(補助記憶域プール)に存在する可能性があり,開始元ジョブのネームスペース中のライブラリーが常に使用されることになります。
例11:照会資源の制限の変更
CHGQRYA QRYSTGLMT(200)
このコマンドは,照会用一時記憶域の制限を200メガバイトに変更します。
上 |
エラー・メッセージ
*ESCAPE メッセージ
- CPF1321
- ジョブ&1ユーザー&2ジョブ番号&3が見つからない。
- CPF436E
- ジョブ&1ユーザー&2ジョブ番号&3は活動状態になっていない。
- CPF9810
- ライブラリー&1が見つかりません。
上 |