目的
利用可能なロックの何パーセントが行ハッシュのロックに使用されるとトランザクションが自動的にアボートするかを指定します。この設定によって、Teradata Databaseでデータベース トランザクションの不適切な動作が回避されます。
実行するためには、すべての問合わせが動作するオブジェクトに対するロックを取得する必要があります。ロックには、行ハッシュ、行範囲、テーブル、 およびデータベースというさまざまなタイプがあります。適用されたロックを追跡するために特殊なテーブルが使用されます。このロック テーブルは、AMPごとにメモリに保持されます。
トランザクションを閉じずに1つのトランザクションで多数の単一行更新を実行すると、1つ以上のAMPに対する行ハッシュのロックでロック テーブルがいっぱいになる可能性があります。これにより、その他のトランザクションを実行できなくなり、問題のあるトランザクションをアボートしてロック テーブルにスペースを空けるまで、それ以上の作業は実行できなくなります。一般に、この場合はデータベースを再始動する必要があります。ただし、システムからエラーが返された場合は、問合わせが保持しているロックが解除されるため例外です。
Teradata DatabaseのLock Managerの障害隔離機能によって、各トランザクションで使用されるロックの数が監視されます。使用される行ハッシュのロックの割合がMaxRowHashBlocksPercentで定義されたしきい値に達すると、トランザクションは自動的にアボートします。その他のトランザクションには影響せず、システムを再始動する必要はありません。
フィールド グループ
一般
デフォルト
50%。AMPのロック テーブルで許可される最大領域の50%を超える領域が行ハッシュのロックに必要になると、トランザクションが停止します。
トランザクションで取得できるロックを増やすためには、MaxRowHashBlocksPercentの設定値を大きくします。
変更の反映
DBS制御レコードへの書き込みが行なわれた後。