sheapthres_shr - 共有ソートのソート・ヒープのしきい値構成パラメーター

このパラメーターは、ソート・ヒープに基づく操作で使用可能な共有ソート・メモリー予約合計量のソフト・リミットを表します。

構成タイプ
データベース
パラメーター・タイプ
  • オンラインで構成可能 (データベース接続が必要)
  • Db2® pureScale® 環境およびパーティション・データベース環境のメンバーによって構成可能。
伝搬クラス
即時
デフォルト [範囲]
32 ビット・プラットフォーム
自動 [250 - 524 288]
デフォルト設定は 5000 です。
64 ビット・プラットフォーム
自動 [250 - 2 147 483 647]
デフォルト設定は 5000 です。
注: デフォルト値は、非パーティション・データベース環境でデフォルトで実行されるデータベース作成の一環として、 Db2 構成アドバイザーによって変更される場合があります。 Db2 構成アドバイザーは、 DB2_WORKLOAD=ANALYTICSが設定されていない限り、 sheapthres_shr パラメーターの値を AUTOMATIC に設定します。
単位
ページ (4 KB)
AUTOMATIC

AUTOMATIC 設定は、 sheapthres_shr パラメーターのセルフチューニングを有効にするために使用されます。これにより、STMM は、ワークロード要件の変更に応じて、使用可能な合計共有ソート・メモリーのサイズを動的に変更できます。 これは、デフォルトの 共有ソート・メモリー・モデル の下で、かつ SELF_TUNING_MEM = ONの場合にのみ有効です。 それ以外の場合は、基礎となる構成値に固定値が反映されます。

sheapthres_shr パラメーターのセルフチューニングが使用可能な場合、基礎となる構成値を手動で更新しようとする試みは一時的なものになります。 設定は引き続き STMM によってチューニングされるからです。

wlm_admission_ctrl confiugraion パラメーターが YES に設定されている場合、 sheapthres_shr 構成パラメーターに AUTOMATIC 設定を指定することはできません。 そのように設定しようとすると、SQL1668N RC=12 という SQL コードが返ります。

sheapthres_shr パラメーターが固定値に設定されている場合、 sortheap 構成パラメーターのセルフチューニングを有効にすることは可能ですが、 sheapthres_shr パラメーターが AUTOMATICに設定されている場合、 sortheap を固定値に設定することはできません。 sheapthres_shrAUTOMATIC に更新されると、sortheap パラメーターも AUTOMATIC 設定に更新されます。 sheapthres_shr パラメーターが AUTOMATIC に設定されているときに sortheap パラメーターを固定値に更新しようとすると、エラー・メッセージを出して失敗します。

AUTOMATIC に設定すると、STMM による sheapthres_shr のセルフチューニングが使用可能になり、他の構成要件も適用されます。 sheapthres_shr のセルフチューニングが行われるようにするには、以下の条件が当てはまる必要があります。
  • STMM は使用可能です (SELF_TUNING_MEM=ON)。
  • 「共有ソート・メモリー・モデル」 が有効になっている (sheapthres が 0 に設定されている)。
  • sortheap パラメーターが AUTOMATIC に設定されている。
  • DB2_WORKLOAD=analytics が設定されていない。
  • パーティション・データベース環境の場合、データベースが明示的に活動化されている。

sort パラメーターのセルフチューニングは、カラム・オーガナイズ表にアクセスするワークロードではサポートされないため、DB2_WORKLOAD=ANALYTICS の場合は無効になります。 そのような場合は、sheapthres_shr パラメーターの値を AUTOMATIC ではなく固定値に設定してください。そうしないと、パフォーマンスが低下したり、メモリー不足の状態が発生したりする可能性があります。 DB2_WORKLOAD レジストリー変数の値が ANALYTICSに設定されている場合、 sheapthres_shr パラメーターを AUTOMATICに設定することはできません。 また、 Db2 構成アドバイザーは、 sheapthres_shr パラメーターの固定値を自動的に構成します。

さまざまな実行時操作 (技術的に言えばソート操作ではない実行時操作を含む) は、sortheap 設定に基づいて作業メモリーを割り振ります。 sortheap 設定に基づいて作業メモリーを割り振るのは、以下の操作です。
  • ソート
  • ハッシュ結合
  • Index ANDing
  • ブロック索引 ANDing
  • メモリー内の表
  • マージ結合
  • スカラー集約
  • Partial early distinct 操作および early aggregation 操作
  • 表キュー
  • ハッシュされた GROUP BY
  • カラム・オーガナイズのデータ処理

sortheap パラメーター設定が操作ごとの最大メモリー使用量を制御するのに対し、sheapthres_shr パラメーター設定はメンバーごとの各データベースのメモリー・コンシューマーのソートに使用できるメモリー全体を制御します。 データベースでのすべてのアクティビティーによって要求される合計予約量が sheapthres_shr 値に近づくと、 sheapthres_shr パラメーターは、許可されるソート予約量を減らすことによって使用可能メモリー全体を制御します。 要求された予約量の合計が sheapthres_shr 値に達すると、最小予約量しか使用できなくなり、パフォーマンスが低下する可能性があります。 予約量の合計が sheapthres_shr 値の 1.25 倍に達すると、ソート・メモリーの要求は拒否される可能性があり、エラー (SQL0955C) がアプリケーションに返されます。

使用できるソート・メモリー・モデルは 3 つあります。 使用されるモデルは、構成内のエレメントの数によって決まります。
共有ソート・メモリー・モデル
共有ソート・メモリー・モデルはデフォルトのモデルであり、sheapthres = 0 の場合に常に有効です。 sheapthres 設定は専用ソート・モデルのスロットルを制御します。 設定値が 0 の場合、専用ソート・メモリーが使用不可になります。 共有ソート・モデルでは、すべての sortheap 割り振りは、データベース共有メモリー (database_memory) の一部である共有ソート・ヒープ (sheapthres_shr) からのものです。 共有ソート・メモリー・モデルは、 sortheap および sheapthres_shr の STMM チューニングを行うことができる唯一のモデルです。
専用ソート・メモリー・モデル
専用ソート・メモリー・モデルは、sheapthres がゼロでない場合に常にアクティブになり、構成によって共有ソート・メモリーが使用可能になることもありません。 専用ソート・メモリー・モデルの下では、sortheap 割り振りは、専用メモリーからのみ割り振られます。 共有ソート・メモリーを明示的に要求する操作は無効であり、エラーを返します。 このモデルの下では、STMM ソート・チューニングは行われません。
ハイブリッド・ソート・メモリー・モデル
ハイブリッド・ソート・メモリー・モデルは sheapthres がゼロでない場合に常にアクティブになりますが、操作によっては構成によって共有ソート・メモリーが使用可能にされることもあります。 共有ソート・メモリーを必要としない操作は、専用メモリーから割り振られます。 このモデルの下では、STMM ソート・チューニングは行われません。
以下の構成設定のいずれも共有ソート・メモリーを使用可能にすることができます。
  • 内部並列処理が使用可能である (INTRA_PARALLEL = YES)
  • 接続コンセントレーターが使用可能 (MAX_CONNECTIONS > MAX_COORDAGENTS)
  • DB2_WORKLOAD=ANALYTICS
共有ソート・メモリーが使用可能でない場合、共有ソート・メモリー・モデルおよびハイブリッド・ソート・メモリー・モデルはアクティブにならず、以下の操作が失敗します。
  • XML 表へのデータのロード
  • カラム・オーガナイズの照会処理
  • パーティション内並列処理を要求するアプリケーション
上記リストの操作のいずれかが失敗する場合、以下のステップすべてを実行して、共有ソート・メモリー・モデルを使用可能にしてください。
  • sheapthres 構成パラメーターを 0 に設定します。
  • Db2 インスタンスを再始動します。 Db2 インスタンスをリサイクルするには、 db2stop コマンドに続けて db2start コマンドを実行します。
  • sheapthres_shr パラメーターを適切に構成します。

モニター

使用可能なモニター・エレメントは数多くあります。

一般的なモニターの場合は、以下のモニター・エレメントを使用できます。
  • ACTIVE_SORTS
  • TOTAL_SECTION_SORT_TIME
  • TOTAL_SECTION_SORT_PROC_TIME
  • TOTAL_SECTION_SORTS
  • TOTAL_SORTS
制約のあるソート・メモリー構成の合計のモニターの場合は、以下のモニター・エレメントを使用できます。
  • POST_THRESHOLD_SORTS (共有ソートの場合)
  • POST_THRESHOLD_PEDS
  • POST_THRESHOLD_PEAS
  • POST_SHRTHRESHOLD_HASH_JOINS (共有ソートの場合)
  • POST_THRESHOLD_HASH_GRPBYS
  • POST_THRESHOLD_OLAP_FUNCS
  • SORT_OVERFLOWS
  • TQ_SORT_HEAP_REJECTIONS
  • SORT_HEAP_ALLOCATED (共有ソート予約量)
  • SORT_SHRHEAP_TOP (共有ソート予約の最高水準点)

SORT_HEAP_ALLOCATED および SORT_SHRHEAP_ALLOCATED モニター・エレメントは、実際に割り振られるメモリー量ではなく、予約要求量を反映します。 要求された予約量すべてを完全に割り振らないとしても、それは正常な操作です。

共有ソート予約レベルのモニターには、MON_GET_DATABASE ルーチンを使用します。 以下の例は、共有ソート予約レベルのモニターに使用できる照会を示しています。
select SORT_SHRHEAP_ALLOCATED, SORT_SHRHEAP_TOP from table (MON_GET_DATABASE (null))
この照会は、メモリー予約レベルを 4K 単位で返します。
SORT_SHRHEAP_ALLOCATED SORT_SHRHEAP_TOP   
---------------------- -------------------- 
                128411               396405
共有ソート・メモリー使用量のモニターには、MON_GET_MEMORY_POOL ルーチンを使用します。 以下の例は、共有ソート・メモリー使用量のモニターに使用できる照会を示しています。
select memory_pool_used, memory_pool_used_hwm 
from table (mon_get_memory_pool(null,null,null)) 
where memory_pool_type='SHARED_SORT'
この照会は、共有ソートのメモリー割り振りレベルを 1K 単位で返します。
MEMORY_POOL_USED  MEMORY_POOL_USED_HWM
----------------- --------------------
           140574               140574
単一データベースで実行されるすべてのアプリケーションで、共有ソート・メモリー・プールは 1 つだけです。