2

何か間違ったことをしている可能性があるのか​​、それともASP.NET SQLメンバーシッププロバイダーを捨てて、自分でロールする必要があるのか​​わからない。データベース呼び出しの数を減らすことで、Webアプリ/サービスのパフォーマンスを最適化するために懸命に取り組んでいます。そのために、私はEntity Framework Profiler(EFProf)を接続しました。これは素晴らしいことです。

Membership.ValidateUser(username、password)への1回の呼び出しから、データベースへの8回の呼び出しを取得したようです。4つの選択、および4つの更新。まったく同じシーケンスの選択と更新が2回続けて繰り返されているようです。ユーザー名に基づいてユーザーデータを選択し、userIdに基づいて再度選択し、最後のログイン日と最後のアクティビティの日付を更新します(最後の2つは2つの別々の更新ステートメントとして送信されます)。

Azureで実行しているという事実を追加すると、これはやや大きな問題になります。したがって、データベースは同じマシン上またはWebサーバーのすぐ隣に格納されていないため、各db呼び出しには平均で3〜10ミリ秒かかります。 。

これについて何か考えはありますか?誰かが以前にこの振る舞いに気づきましたか?これはMSFTが最適化する必要があるもののようですが、とにかく質問したいと思いました。

ありがとう。

4

1 に答える 1

1

SqlMembershipProviderとSqlRoleProviderはAzureでサポートされていないため、ユニバーサルプロバイダーに移行することをお勧めします。それがとてもおしゃべりな理由かどうかはわかりませんが、新しいプロバイダーにはAzureサポートが組み込まれています。

于 2012-08-20T15:25:50.773 に答える