| プロパティ | 説明 |
|---|---|
| パラメータ・タイプ | 整数 |
| デフォルト値 | 次の値が導出される: 4×TRANSACTIONS |
| 変更の可/不可 | 変更不可 |
| 値の範囲 | 20から無制限。0に設定すると、エンキューは使用禁止になる。 |
| 基本/基本以外 | 基本以外 |
| Oracle RAC | すべてのインスタンスに、このパラメータを設定する必要があり、すべてのインスタンスに正の値を指定するか、またはすべてに0を指定する必要がある。 |
DMLロックは、DML操作(挿入、更新および削除)を行う表でロックを取得します。DML_LOCKSには、トランザクションで変更されされる表ごとのDMLロックの最大数を指定します。値は、すべてのユーザーが参照するカレント表に対するロックの総計と等しい値である必要があります。たとえば、3人のユーザーが1つの表のデータを変更しようとするときは、3つのエントリが必要になります。3人のユーザーが2つの表のデータを変更しようとするときは、6つのエントリが必要になります。
デフォルト値は、各トランザクションで参照される4つの表の平均値になります。システムによっては、この値では足りない場合があります。
エンキューは、データベース・リソースへのアクセスをシリアライズ化する共有メモリー構造体です。DML_LOCKSの値を0に設定すると、エンキューが使用禁止になり、パフォーマンスがわずかに改善されます。ただし、DML_LOCKSを0に設定する場合は、次の制限に注意する必要があります。
DROP TABLE、CREATE INDEX文は使用できません。
LOCK TABLE IN EXCLUSIVE MODEのような明示的なロック文は使用できません。
DML_LOCKSに0が設定されているインスタンスでは、Enterprise Managerを実行できません。
パラレルDML中は、シリアル実行中より多くのロックが保持されます。そのため、データベースが多くのパラレルDMLをサポートする場合、このパラメータの値を増やす必要がある場合があります。
|
関連項目:
|