IBM i 7.6 プログラム資料説明書を読む　その2　データベース関連

[こちらの記事](https://qiita.com/gomAnomalocaris/items/0a697256336375e78d2a)の続きです。

## データベースの変更

### Adaptive Query Processing のハッシュテーブルサイズのモニター・調整の変更

IBM i 7.6 では、適応型照会処理 (AQP) を使用して、照会実行中および実行後にハッシュテーブルのサイズを監視および調整します。ハッシュテーブルのサイズを動的に調整することで、AQP はハッシュテーブルのサイズ不足による潜在的なパフォーマンス低下を修正します。
ハッシュテーブルのサイズは、実行前に照会オプティマイザーによって見積もられます。ハッシュテーブルのサイズがハッシュテーブルに挿入される要素数よりも小さい場合、重大なパフォーマンスの問題が発生する可能性があります。パフォーマンス低下の可能性に対処するため、AQP はすべてのハッシュテーブルのサイズとデータ量を監視します。ハッシュテーブルに含まれる行数がサイズを大幅に超過した場合、AQP はハッシュテーブルのサイズを拡張します。実行中に検出された場合は、クエリが再開されます。実行後に検出された場合は、プランを使用しているカーソルが強制的にクローズされます。どちらのシナリオでも、以降のクエリ実行では、拡張されたハッシュテーブルサイズが使用されます。

※ Db2 for iSQLクエリエンジンは、QROハッシュと呼ばれる整数値でクエリを一意に識別します。より大きなSQLプランキャッシュをより適切にサポートするために、IBM i 7.6では、QROハッシュ値のサイズが32ビット（INTEGER）から64ビット（BIGINT）に増加しました。

### SQL 文字列キャスト関数のエラー適用

IBM i 7.6 では、以下の組み込み関数のいずれかが第 1 引数として文字列式を持つ場合、第 2 引数に ISO、USA、EUR、JIS、または LOCAL の日時形式オプションを指定することはできません。この制限は文書化されていますが、IBM i 7.6 より前では適用されていませんでした。
これは以下の組み込み関数に適用されます。
• CHAR
• CLOB
• DBCLOB
• GRAPHIC
• TO_CLOB
• VARCHAR
• VARGRAPHIC
このエラー状況では、SQLCODE -171 と SQLSTATE 42815 が正しく返されるようになりました。

### QSYS2.SYSTEM_STATUS 表関数、QSYS2.SYSTEM_STATUS_INFO ビュー、および QSYS2.SYSTEM_STATUS_INFO_BASIC ビューの変更

IBM i サービスの掲題表、表関数から、非推奨とされていた、下記の列を削除
AVERAGE_CPU_RATE
AVERAGE_CPU_UTILIZATION
MINIMUM_CPU_UTILIZATION
MAXIMUM_CPU_UTILIZATION
SQL_CPU_UTILIZATION

確認してみました。上がIBM i  7.6, 下がIBM i 7.5です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/63dd2161-ba56-4e19-bdc1-dfff2ecfcdeb.png)

### QSYS2.USER_INFO_BASIC ビューから USER_DEFAULT_PASSWOR 列を削除

確認結果です。上がIBM i  7.6, 下がIBM i 7.5。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/5bc70d77-7105-4b6d-95be-44316310e342.png)

### SQL Error Logging Facility (SELF) をシステム全体で無効化が可能に
*NONE

SYSIBMADM.SELFCODES グローバル変数が置換され、デフォルトを *NONE に設定するとそれ以降のすべてのジョブで SELF が無効化される。既存ジョブは、エラーや警告のログ記録に SELF が使用されなくなります。
以前は、SYSIBMADM.SELFCODES を再定義してデフォルト値 *NONE を使用すると、そのジョブは将来のジョブにのみ適用されていました。
個々のジョブ内で SYSIBMADM.SELFCODES が *NONE に設定されると、そのジョブでのみ SELF が使用されなくなります。

システム全体で SELF を無効化するSQL文の例
```
CREATE OR REPLACE VARIABLE SYSIBMADM.SELFCODES VARCHAR(256) DEFAULT '*NONE';
```

以下のIBM i レベル以降で適用される。
• IBM i 7.6 の基本リリース
• IBM i Db2 for i 7.5: PTF グループ SF99950 レベル 9
• IBM i Db2 for i 7.4: PTF グループ SF99704 レベル 30

### SQL XSLTRANSFORM スカラー関数はサポートされなくなった

5733-XT2 IBM XML Toolkit for i （2023年9月にサポート終了）に含まれる上記スカラー関数はサポートされなくなった。
XSLTRANSFORM 関数は、XML 文書を XML、HTML、プレーンテキストなどの異なるデータ形式に変換するもので、当ライセンスプログラムがシステムにインストールされている場合、関数は引き続き動作します。
製品がインストールされていない場合は、SQLCODE -7056（理由コード 1）、SQLSTATE 560CR が発行されます。代替関数はありません。

### QSYS2.SYSTEM_STATUS ビューおよび表関数の ATTENTION_LIGHT 列のドキュメントを修正

ATTENTION_LIGHT 列のドキュメントを修正（Collect）した、とのことで機能的には変わっていないようです。が調べたことが無かったので確認してみました。
上が7.6、下が7.5です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/ccea8030-85a5-4048-bae9-59eabc9f72b1.png)

※ [Infocenter](https://www.ibm.com/docs/ja/i/7.6.0?topic=services-system-status-info-view)には オフ/ON を表示、とありましたが、OFF/ONが自動翻訳されてしまったようですね(^^;
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/730deec3-fdc7-4aa4-aa12-846a68e9be54.png)


上記の列には当LPAR区画についてアテンションコード（Axxx xxxx」）の表示有無をしめす。（※POWERサーバーのアテンション・ライトの点灯有無ではない、と注意書きあり）
以下のビューに適用。
• SYSTEM_STATUS ビュー
• SYSTEM_STATUS_INFO ビュー
• SYSTEM_STATUS 表関数

続きは[こちら](https://qiita.com/gomAnomalocaris/items/276059a774d3e39fde89)です