2012-02-20 3 views
0

トランザクション内でsql selectクエリを実行する副作用はありますか?トランザクション内でSQLクエリを実行する副作用はありますか?

私は1つのトランザクションブロックにデータを照会し、挿入/更新するサービスメソッドを実行しています。

クエリはトランザクションに含まれています。私はこれからどんな否定的な行動も期待するべきですか?

答えて

0

否定的または有益な動作は絶対的な概念ではありません。

アプリケーションのニーズに応じて、分離とトランザクションを設計する必要があります。より多くの独立性はまた、ロックがより多くのロックを意味することを意味します。

0

私は否定的な振る舞いはありませんが、SQL Serverではデフォルトでトランザクションロック行がわかります。したがって、更新/挿入中のテーブルにヒットしたクエリがあると、クエリがロックされたりタイムアウトしたりすることがあります。このhereの例とその例を見つけることができます。

正常に挿入/更新するための条件として使用している場合、必ずしも悪いとは限りません。トランザクションのポイントは、何らかの障害が発生した場合に、何らかの問題をロールバックできることです。したがって、クエリがこの目標を達成できない場合は、トランザクションから除外します。 Here'sあなたはリーフスルーして、トランザクションを効果的に使用する方法のコンセプトを手に入れることができます。

0

取引が開いている間はロックされます。これを.NETからやって慎重ではない場合は、テーブルにロックを残します。また、IDカラムを持ち、最初のトランザクションがまだ開いている間に挿入するテーブルでトランザクションをロールバックすると、連続していないIDで終了します。

ただし、トランザクション内で実行するメリットは、これらの問題を克服する可能性があります。

できるだけ取引を小さくするようにしてください。

関連する問題