2012-03-20 19 views
0

私のプロジェクトでは、トランザクションの開始コミットまたはロールバックの変更を使用しています。しかし、これにより、その特定の機能のテーブルがロックされます。トランザクションロックの代わり

他のユーザーが他の機能を実行する場合、ロックされたテーブルは、トランザクションが完了するまで利用できません。

データセキュリティを保証するトランザクションの代わりにテーブルがロックアウトされていないかどうかを知りたいと思います。

+0

これはdbaの質問です。 – JeffO

答えて

2

いいえ、取引はデータベースのデータの一貫性を保証する方法です。しかし、一般にテーブル全体が他のユーザーに「ロックアウト」されることはありません。 Oracleでは、デフォルトでは、ロックは更新される行だけに配置されます。

+0

SQL Serverはテーブルをロックするか、少なくともそれを行います。彼らが最近改善したかどうかは分かりません。 OPが何を求めているのかは不明でした。質問はOracleとSS-2005の両方に付いているからです。 – DCookie

+1

SQL Serverがテーブルレベルのロックに "エスカレート"できることは知っていますが、おそらくこれは標準ではありませんか、それともそれほど簡単なデータベースではありませんか?例えば1人のユーザーが注文行を更新し、トランザクションが完了するまで他の注文行を処理することはできません。 –

+0

私は、Tom Kyte氏の書籍の中でこのことについて話をしています。行レベルのロックはしばしばページロックをもたらすので、他のSQLを効果的にブロックできます。私は実際にOPがタグに基づいて求めていたものによって混乱しました。 – DCookie