機能レベル 507 (APAR PH2371 により有効化されたアクティベーション - 2020 年 6 月)

機能レベル 507 (V12R1M507) では、ロック制限、プロファイル使用時の古い統計の削除、外部プロシージャーおよびネイティブ SQL プロシージャーの CREATE OR REPLACE PROCEDURE、ならびにIBM Db2 Analytics Acceleratorを使用して新たにサポートされるパススルー専用の式について、アプリケーションの細分性が導入されています。

内容

ロック制限に対するアプリケーションの細分性 (NUMLKUS および NUMLKTS)

ロック制限に対するアプリケーションの細分性をサポートするために、以下の 2 つの新しい組み込みグローバル変数が導入されました。以前は NUMLKUS および NUMLKTS のサブシステム・パラメーターによってのみ指定されていました。

  • SYSIBMADM.MAX_LOCKS_PER_TABLESPACE には、アプリケーションが表スペース内で同時に保持できるページ、行、または LOB ロックの最大数を示す整数値が含まれています。 アプリケーションが単一表スペース内の最大ロック数を超えた場合は、ロック・エスカレーションが発生します。 MAX_LOCKS_PER_TABLESPACE は、既存の NUMLKTS サブシステム・パラメーターに対応しています。
  • SYSIBMADM.MAX_LOCKS_PER_USER には、単一アプリケーションがすべての表スペースに対して同時に保持できるページ、行、または LOB ロックの最大数を指定する整数値が含まれています。 この制限は、LOCKSIZE PAGE、LOCKSIZE ROW、または LOCKSIZE ANY オプションを使用して定義されているすべての表スペースに適用されます。 MAX_LOCKS_PER_USER は、既存の NUMLKUS サブシステム・パラメーターに対応します。

詳しくは、以下を参照してください。

APAR PH15342 では、ロック制限に対するアプリケーション細分性をサポートする機能コードが提供されました。

プロファイル使用時の古い統計の削除

USE PROFILE オプションを指定して RUNSTATS ユーティリティーを実行すると、Db2は、指定されたプロファイルに含まれている統計のみを収集します。 機能レベル 507 以降では、Db2は、プロファイルの一部ではない既存の統計も削除するようになりました。 プロファイルに含まれていない頻度、キー・カーディナリティー、およびヒストグラム統計は、ターゲット・オブジェクトのカタログからすべて削除されます。 この新しい動作により、同時に実行している動的 SQL に影響を与えることなく、古い分散統計を削除する方法が提供されます。

この新機能は、REORG TABLESPACE ユーティリティーおよび LOAD ユーティリティーによってインライン統計を収集するためにプロファイルを使用する場合にも適用されます。

詳しくは、以下を参照してください。

APAR PH16345 では、プロファイル使用時に古い統計の削除をサポートする機能コードが提供されました。

プロシージャーの CREATE OR REPLACE

複雑なアプリケーション環境でストアード・プロシージャーをより容易に管理できるようになりました。 CREATE PROCEDURE ステートメント (外部プロシージャーおよびネイティブ SQL プロシージャー用) は、新しい OR REPLACE 節を使用できるように拡張されています。 CREATE PROCEDURE ステートメントに OR REPLACE 節を追加することによって、元のステートメントを再利用し、そのステートメントに何らかの変更を加え、再発行して既存のプロシージャーの定義を変更することができます。 多くの場合、これにより、まず既存のプロシージャーをドロップしてから、必要に応じて変更された元の CREATE ステートメントを使用して、プロシージャーを再作成する必要がなくなります。

さらに、ネイティブ SQL プロシージャーの場合、VERSION 節と組み合わせて CREATE PROCEDURE ステートメントで OR REPLACE 節を使用し、既存のバージョンのプロシージャーを置き換えたり、新しいバージョンのプロシージャーを追加したりできます。 OR REPLACE 節を指定して CREATE ステートメントを再利用し、既存のバージョンを置き換えたり、新しいバージョンのネイティブ SQL プロシージャーを追加したりする場合、その結果は、REPLACE VERSION 節または ADD VERSION 節を指定して ALTER PROCEDURE ステートメントを使用した場合と似たものになります。 CREATE ステートメントで OR REPLACE 節が指定されていて、指定された名前のプロシージャーがまだ存在していない場合、その節は無視され、新しいプロシージャーがさらに作成されます。

APAR PH24324 は、新しい CREATE OR REPLACE PROCEDURE 構文をサポートする機能コードを提供しました。

IBM Db2 Analytics Acceleratorを使用した、新しくサポートされるパススルー専用の式

以下の組み込み関数は、パススルー専用の式としてサポートされるようになりました。これらの式は、Db2 for z/OS®からIBM Db2 Analytics Acceleratorに渡されます。 パススルー専用の式の場合、Db2 for z/OSは、パラメーターのデータ・タイプが関数に対して有効であるかどうかのみを確認します。 このアクセラレーター・エンジンは、他のすべての関数解決の処理と検証を行います。 詳しくは、「パススルーのみの式による照会のアクセラレーション」を参照してください。

APAR PH23042 は、新たにサポートされるパススルー専用の式の機能コードを提供しました。

機能レベル 507 の変更の検索: この機能レベルの新規コンテンツおよび変更されたコンテンツを検索するには、任意のページから「FL 507」の検索を試します。 機能レベル 507 の新規トピックおよび変更されたトピックのリストが表示されます。

機能レベル 507 の隣接するコンテンツが変更されたというDb2 12情報のどこかにリンクFL 507が表示されたら、リンクをクリックして、現在読んでいるページを表示することができます。

機能レベル 507 のアクティブ化の詳細

表 1. 機能レベル 507 のアクティブ化の詳細
有効化する APAR: PH24371
最小 Db2 カタログ・レベル: V12R1M507
カタログ変更: 以下の組み込みグローバル変数は、CATMAINT ジョブを介して導入されます。
  • MAX_LOCKS_PER_TABLE_SPACE
  • MAX_LOCKS_PER_USER
アプリケーション互換性の制御: アプリケーションは、以下の新しい機能を使用するために、アプリケーション互換性レベル V12R1M507 以上で実行する必要があります。
  • NUMLKTS サブシステム・パラメーターをオーバーライドするための SYSIBMADM.MAX_LOCKS_PER_TABLESPACE 組み込みグローバル変数。
  • NUMLKUS サブシステム・パラメーターをオーバーライドするための SYSIBMADM.MAX_LOCKS_PER_USER 組み込みグローバル変数。
  • 外部プロシージャーおよびネイティブ SQL プロシージャーに対する OR REPLACE および SPECIFIC 節を使用した CREATE PROCEDURE。
  • 新しくサポートされるパススルー専用の式。

機能レベル 507 をアクティブ化する方法

以下のステップでは、この機能レベルをアクティブ化するためのプロセスを要約します。 Db2 12 環境および一般的な継続的デリバリーで使用可能な新機能の採用をアクティブ化および制御する方法について詳しくは、 Db2 12 継続的デリバリーの新機能の採用を参照してください。

Db2 12機能レベル 507 をアクティブ化するには、以下のステップを完了します。
  1. Db2 12 がまだ機能レベル 100 である場合は、最初に機能レベル 500 または 501 を活動化してください。 詳しくは、Db2 12 マイグレーション時の 新機能をアクティブにするを参照してください。
  2. まだアクティブ化されていない下位の機能レベルを含めて、互換性のない変更が解決されたことを確認します。 機能レベル 501 以上での互換性のない変更の要約を参照してください。
  3. Db2 のコード・レベル、カタログ・レベル、および機能レベルの判別で説明されているように DISPLAY GROUP コマンドを発行して、Db2 が十分なコード・レベルであることを確認します。 DSN7100I メッセージは、メンバー詳細の中の DB2 LVL 下での、Db2 コード・レベルを表します。アクティブ化できる最上位の機能レベルが V12R1M507 以下の場合は、APAR PH24371 の PTF およびその他の必要な保守を適用して、DSN7100 メッセージ内のすべての数字が DB2 LVL に対して 121507 以上を示すようにします。
    ヒント: 任意の機能レベルで任意の PTF を適用できます。機能レベルのアクティブ化を進める前に、このコード・レベル以上で一定期間 Db2 を実行することをお勧めします。 機能レベルを活動化した後は、 Db2 をそれより低いコード・レベルで実行することはできません。したがって、機能レベルを活動化した後で必要な PTF を除去することはできません。
  4. インストール CLIST を実行することにより、CATMAINT および機能レベルのアクティブ化ジョブを調整します。
    1. パネル DSNTIPA1 で、 INSTALL TYPE == => ACTIVATE を指定します。 次に、前の機能レベルの活動化 (またはマイグレーション) からの出力メンバーの名前を INPUT MEMBER フィールドに指定し、新しいメンバー名を OUTPUT MEMBER フィールドに指定します。
    2. パネル DSNTIP00 で、TARGET FUNCTION LEVEL ===> V12R1M507 を指定します。CLIST は、DSNTIJAF ジョブの ACTIVATE コマンドおよび DSNTIJTC ジョブの CATMAINT ユーティリティー制御ステートメントを調整するときに、この値を使用します。
    3. 残りの CLIST パネルに進み、CLIST が活動化処理のためにジョブを調整するのを待ちます。 出力データ・セットには、アクティベーション・プロセスの調整済みジョブが含まれます。
  5. DSNTIJIC ジョブを実行して、Db2のカタログおよびディレクトリーのイメージ・コピーを作成します。
  6. DSNTIJTC ジョブを実行するか、または LEVEL V12R1M507 を指定してCATMAINT ユーティリティーを実行し、適切なカタログ・レベルにカタログを更新します。複数のカタログ更新が必要な場合、CATMAINT ジョブは各更新を順次処理します。 シーケンス内の後の更新が失敗した場合、以前に成功した更新はロールバックされず、カタログ・レベルは最上位レベルに達します。 これが発生した場合は、失敗の理由を訂正し、同じな CATMAINT ジョブを再実行依頼することができます。
  7. オプションで、TEST オプションを指定した以下の ACTIVATE コマンドを発行して、 Db2 が機能レベルの活動化の準備ができていることを確認します。
    -ACTIVATE FUNCTION LEVEL (V12R1M507) TEST
    メッセージ DSNU757I は結果を示します。 詳しくは、Db2 機能レベルの活動化のテストを参照してください。
  8. 調整した DSNTIJAF ジョブを実行するか、以下の ACTIVATE コマンドを発行します。
    -ACTIVATE FUNCTION LEVEL (V12R1M507)
  9. アプリケーションがこの機能レベルの新機能を使用する準備ができている場合は、対応するアプリケーション互換性レベルでそれらを再バインドしてください。 詳しくは、アプリケーション Db2 互換性の制御を参照してください。
    オプションで、 すべてのアプリケーション がターゲット機能レベルの新機能を使用する準備ができたら、以下のジョブを実行できます。
    1. DSNTIJUZ を実行して、パネル DSNTIP00 で指定された APPLCOMPAT 値でサブシステム・パラメーター・モジュールを変更します。
    2. DSNTIJOZ ジョブを実行して SET SYSPARM コマンドを発行し、APPLCOMPAT サブシステム・パラメーターをオンラインにします。
    3. DSNTIJUA ジョブを実行して、パネル DSNITP00で指定された SQLLEVEL 値を使用して Db2 データのみのアプリケーション・デフォルト・モジュールを変更します。

機能レベル 507 の非互換の変更

機能レベル 507 では、非互換の変更は導入されていません。