LockThreshold
構文
[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 リファレンス" の "トランザクションのロックしきい値の変更"。