2012-01-25 8 views
1

私はそれに5-6のEFモデルを持つWCFアプリケーションを持っています。制作環境では、このアプリのインスタンスは1つだけ実行されます。EFアプリケーションのデバッグDBテーブルをロックしますか?

しかし、開発中に同時に5人の開発者が作業しています。 (同じデータベースに対して)

SQL Server 2008 R2データベースのテーブルがロックされることがあることに気づいています。それは、誰かがデバッグを一歩踏み出していると思われ、数分間ステップを踏んでいなければならないときです。

なぜEFがテーブルをロックするのか不思議です。誰かがEFを使用してテーブルをロックする方法を教えてください。これを防ぐために何ができますか?

注:この同じアプリケーションは、WCF Data Services(OData)エンドポイントにアクセスして(同じデータベースからの)データの一部を取得します。 ODataがdbをロックする方法はわかりませんが、重要である場合にはそれを言いたいと思いました。

答えて

0

私たちができることは、ベンチャーの様々な推測です。例えば。データモデルに適切なインデックスがない場合、レコードの検索はテーブルスキャンに変わり、escalate locksをテーブルレベルにスキャンします。

本当の解決策は、適切にブロックを調べることです。ブロックを引き起こしているのはまさに、どんなリソースが待っているのですか?他のセッション/トランザクション/ステートメントで必要とされるリソースを保持しているセッション/トランザクション/ステートメント

Activity Monitorまたはwho_is_activeまたはsp_blitzを使用してください。ホワイトペーパーWaits and Queuesをお読みください。

1

解決策は1つのみです。各開発者は、ローカルにデータベースをインストールし、自分の環境でデバッグセッションを実行します。それ以外は間違った開発環境です。 SQL Server ExpressまたはSQL Server Developer Editionを使用します。

関連する問題