ロックエスカレーションを抑制するには
提供:DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#チューニング編】 【DB2逆引きリファレンス目次#様々な最適化パラメータ】
目次 |
前提
- 以下のいずれかが必要: SYSADM権限
解説
ロックエスカレーションに関連するデータベース構成パラメータは以下のとおりです。
- LOCKLIST
- ひとつひとつのロックを記録するためのロックリストの容量を、ページ(ページサイズは4K)数で指定します。 すべてのアプリケーションが使用するロックのサイズの合計がこの値に達すると、ロックエスカレーションが発生します。 なお、各ロックのサイズは、32ビットインスタンスでは36バイトで、64ビットインスタンスでは56バイトです。
- MAXLOCKS
- 各アプリケーションが保持できる行ロックのサイズの合計値を、ロックリストの容量に対するパーセンテージで指定します。 アプリケーションが保持するロックのサイズが、このパラメータにより指定したサイズに達すると、ロックエスカレーションが発生します。
使用例
データベース(ここではsample)に対してロックリストのサイズ(ここではデフォルトの倍の100)を設定する例。
db2 ==> UPDATE DB CFG FOR sample USING LOCKSIZE↓
注意
- MAXLOCKSの値は、各アプリケーションが保持するロックのサイズの合計値であり、アプリケーションすべてでの合計値ではありません。 同時に実行される可能性のあるアプリケーションの数に注意してください。
- 実際にどれだけロックが使用されているかは、スナップショットをとることで確認できます。