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. データベース・メモリー・サイズとオーバーフローの比較
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 サービス・ライン
また、データベース・メモリーのオーバーフロー域を利用して、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"}]
Was this topic helpful?
Document Information
Modified date:
29 June 2021
UID
swg22013148