LockThreshold
Synopsis
[SQL] LockThreshold=n
n は負ではない任意の整数です。既定値は 1000 です。
説明
LockThreshold パラメータは、自動ロック・エスカレーションしきい値です。1 つのトランザクション内で 1 つのテーブルに対して実行された挿入、更新、および削除の数がこの数に達すると、テーブルレベル・ロックがトリガされます。
以下の例を見てみましょう。あるプロセスが、2000 行を挿入するトランザクションを開始します。LockThreshold は 1000 に設定されています。1001 番目の行を挿入した後、このプロセスは、引き続き個々の行をロックするのではなく、テーブルレベルのロックを取得しようとします。これにより、ロックの合計数を減らし、ロック・テーブルが一杯になるのを防ぎます。
自動ロック・エスカレーションは、ロック・テーブルのオーバーフローを防ぐことを目的としています。詳細は、"InterSystems SQL リファレンス" の “INSERT” のリファレンス・ページにある "トランザクションのロックしきい値の変更" のセクションを参照してください。
このパラメータの変更
管理ポータルの [SQL] ページ ([システム管理] > [構成] > [SQL およびオブジェクトの設定] > [SQL]) で、[ロック・エスカレーションしきい値] フィールドに数値を入力します。
ターミナルから LockThreshold に目的の値を設定するには、%SYSTEM.SQL.UtilOpens in a new tab クラスの SetOption(“LockThreshold”)Opens in a new tab メソッドを使用します。詳細は、クラスリファレンスを参照してください。
Config.SQLOpens in a new tab クラスで (クラスリファレンスを参照)、または CPF をテキスト・エディタで編集することで (このドキュメントの “構成パラメータ・ファイルの概要” の章にある "アクティブな CPF の編集" のセクションを参照)、LockThreshold を変更することもできます。
関連項目
-
"ロックと並行処理の制御" の "ロック・テーブル" のセクション。
-
"InterSystems SQL リファレンス" の "トランザクションのロックしきい値の変更"。