Skip to main content

LockThreshold

SQL テーブルレベルのロックしきい値を設定します。

構文

[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 を変更できます。

関連項目

FeedbackOpens in a new tab