0

私は、AzureでホストされているMVC 3のSQL Azureバックアップ開発で、メンバシップ管理に最新のユニバーサルプロバイダを使用しています。 CSVファイルから一括してユーザーを作成するルーチンをコーディングしました。ファイルが解析され、モデルが移入されます。その後、コレクションを繰り返してユーザーを作成します。ユニバーサルメンバシッププロバイダは、ユーザーパフォーマンスの問題を作成します

時間の信じられないほどの量を取り、キーラインがさえ、「大」4コアサーバ上の標準

​​

で、この1行が完了するまでに、ほぼ1秒を取ることができます。これは10,000人のユーザーが約3時間かかることを意味します。それをデータベースに直接行うには、できれば数分かかるでしょう。

さらに悪いことに、既存ユーザーを確認して更新する必要があります。私は必要なインデックスを入れて、データベースは非常に高速です。率直に言えば、このプロバイダは何をすることができますか?

私は何か間違っているのですか、またはこのプロバイダは大規模システムではまったく役に立たないのですか?他の誰かがこの問題を抱えていましたか

私はプロファイルプロバイダーには行かず、自分で書いたといっても過言ではありません!

+0

確かに、セットアップの問題のように聞こえます。私は組み込みを使用して自分自身をロールバックしました - 彼らはa)の外でたくさんのことをしないでください)、ユーザー名が一意であることを確認b)パスワードをハッシュ/暗号化し、c)dbに挿入します。もっと助けてもらえませんが、以前はこの「遅い」問題に遭遇したことはありません。 – Tommy

答えて

2

以前はそのプロバイダを使用していませんでしたが、キーは複数のユーザーを同時に作成することです。ユーザーあたり1秒は妥当です。さらに、ほとんどの時間は、データベースが戻るのを待つのに費やされます。現在のスレッドがデータベースを返すのを待っているときに、新しいスレッドを作成して別のユーザーの作成を開始することをお勧めします。したがって、通常のforeachループでユーザーを1つずつ作成する代わりに、パラレルで自動的にユーザーを作成するParallel.ForEachを使用してください。http://msdn.microsoft.com/en-us/library/dd460720.aspxを参照してください。

最高のお礼、

Ming Xu。

+1

いいアイデア。私はこれを行かせます。この場合、私はデータベースにデータを追加する別のルーチンがあり、それは約20-30秒の挿入をするので、データベースは非常に高速だと思います。 – NER1808

+0

"1秒あたり1秒は合理的です" o_0。あなたは喫煙をしていますか?それは確かにパフォーマンスです。 – Quibblesome

+0

@Quibblesome多くのラウンドのSHA1ハッシュは自分自身を計算しません。 –

関連する問題