IBM Support

[Db2] データベース・メモリーに空きがあるのにソート・ヒープが割り振られない

Question & Answer


Question

アプリケーションが SQL0955C 理由コード "2" で失敗しました。 「SQL0955C このステートメントを処理するためのソート・メモ リーを割り振れません。 理由コード = "2"。 SQLSTATE=57011」 しかし、データベース・メモリーには数 GB の空きがあり、空きが不足しているようには見えません。 なお、次の設定でソート・メモリーはセルフ・チューニング可能になっています。 -STMM が使用可能である (SELF_TUNING_MEM=ON)。 -共有ソート・メモリー・モデルが使用可能である (sheapthres が 0 に設定されている)。 -sortheap パラメーターが AUTOMATIC に設定されている。 理由と対応策を教えてください。

Answer

DB2 は、要求されるソート・ヒープの合計が sheapthres_shr 値に近づくと、許可されるソート予約量を減らすことによって使用可能メモリー全体を制御します。
また、データベース・メモリーのオーバーフロー域を利用して、sheapthres_shr 値より多くのメモリーを獲得することができます。
しかし、要求ソート・ヒープの合計が sheapthres_shr 値の1.25 倍に達した場合は SQL0955C で失敗します。

sheapthres_shr 値はソート・ヒープがセルフ・チューニング可能となっている場合、 STMM が自動的に設定値を変更しますが、この変更は一定の時間間隔で実行されます。
このため、突発的に大量のソート要求が発生した場合は、STMM による sheapthres_shr 値の変更が間に合わず、 SQL0955C で失敗する可能性があります。

SQL0955C の発生頻度を減らすには、 sheapthres_shr 値が余裕を持ったサイズに拡大できるよう、database_memory 値の半分以上をセルフ・チューニング可能にしてください。
例えば、バッファー・プール域のサイズを手動で設定する場合は、バッファー・プールのサイズが database_memory 値の半分を超えないようにします。

※半分を超えると、STMM のチューニング機能が制約を受け、パフォーマンスが最適でなくなったり、メモリー・リソースの制約に関連する症状が発生したりする可能性があります。


運用上の考慮点

オーバーフロー域のサイズは、データベース・メモリーのサイズに依存しています。
大きなデータベース・メモリー・サイズでは必要なオーバーフローは少なく、小さいサイズではより多くのオーバーフロー (最大 10 %) が必要になります。

表 1. データベース・メモリー・サイズとオーバーフローの比較
データベース・メモリーのサイズ
オーバーフロー・ターゲット
64 GB 以下
10%
64 - 96 GB
9%
96 - 156 GB
8%
156 - 266 GB
7%
266 - 493 GB
6%
493 GB 以上
5%


STMM はこのオーバーフロー域のサイズを確保しようと努めるため、セルフ・チューニングに使用可能なメモリーの大きさは、データベース・メモリーのサイズより、固定値を設定したバッファー・プールなどのメモリー域のサイズおよび、オーバーフロー域のサイズを差し引いたサイズとなります。

データベース・メモリーは、バッファー・プールのサイズと、以下のデータベース構成パラメーターの影響を受けます。

catalogcache_sz - カタログ・キャッシュ・サイズ
dbheap - データベース・ヒープ
locklist - ロック・リスト用最大ストレージ
pckcachesz - パッケージ・キャッシュ・サイズ
sheapthres_shr - 共有ソートのソート・ヒープのしきい値
util_heap_sz- ユーティリティー・ヒープ・サイズ


STMM は、以下のメモリー関連のデータベース構成パラメーターを自動的に調整できます。

database_memory - データベース共有メモリー・サイズ
locklist - ロック・リスト用最大ストレージ
maxlocks - エスカレーション前のロック・リストの最大パーセント
pckcachesz - パッケージ・キャッシュ・サイズ
sheapthres_shr - 共有ソートのソート・ヒープのしきい値
sortheap - ソート・ヒープ・サイズ

STMM は、以下のメモリー域が不足が発生しないよう、データベース・メモリーのオーバーフロー域のサイズを調整します。

catalogcache_sz - カタログ・キャッシュ・サイズ
dbheap - データベース・ヒープ
util_heap_sz- ユーティリティー・ヒープ・サイズ


関連情報
パスポート・アドバンテージによく寄せられる質問
sheapthres_shr - 共有ソートのソート・ヒープのしきい値構成パラメーター
database_memory - データベース共有メモリー・サイズ構成パラメーター
セルフチューニング・メモリーの概要

お問合せ先
技術的な内容に関して、サービス契約のもと IBM サービス・ラインにお問い合わせください。
IBM サービス・ライン

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m0z00000006sKAAQ","label":"Memory->STMM"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0"}]

Document Information

Modified date:
29 June 2021

UID

swg22013148