0

我很遗憾,我在Azure托管的MVC 3 SQL Azure支持的开发中使用最新的Universal Providers进行会员管理。我已经编写了一个例程来从CSV文件批量创建用户。文件被解析并填充模型。然后我遍历创建用户的集合。通用会员供应商创建用户性能问题

,它利用时间数量惊人的关键线是标准

​​

即使是一个“大” 4核心服务器上,这一条线几乎可以把1秒完成。这意味着10,000个用户需要将近3个小时。要直接进入数据库,如果可能的话,可能需要几分钟的时间。

更糟的是,我还需要检查现有用户并更新他们,如果他们这样做。我已经加入了必要的索引,并且数据库非常快。坦率地说,这个提供者能做什么?

我做错了什么,或者这个供应商对大规模系统完全没用?有没有其他人有这些问题?

我甚至不会进入配置文件提供程序,只要说我写了我自己的!

+0

不确定,听起来像一个设置问题。我已经使用了内置的功能,并且自己推出了 - 它们并没有做太多的工作)检查用户名是否唯一,b)对密码进行散列/加密,以及c)将数据插入数据库。没有更多的帮助,但我从来没有遇到过这个“缓慢”的问题。 – Tommy 2012-04-19 03:12:49

回答

2

虽然我以前没有使用该提供程序,但关键是要同时创建多个用户。每个用户1秒是合理的。而且,大部分时间都花在等待数据库返回上。当前线程正在等待数据库返回时,我想建议您创建一个新线程来开始创建另一个用户。因此,不要在普通的foreach循环中逐一创建用户,请使用Parallel.ForEach,它将自动并行创建用户,您可以参考http://msdn.microsoft.com/en-us/library/dd460720.aspx作为示例。

最好的问候,

Ming Xu。

+1

好主意。我会放弃这一点。在这种情况下,我认为数据库非常快,因为我有另一个向数据库添加数据的例程,并且它大约会插入20-30次。 – NER1808 2012-04-19 12:52:34

+0

“每个用户1秒是合理的”o_0。你抽烟吗?这是可怕的表现。 – Quibblesome 2013-03-07 11:55:56

+0

@Quibblesome许多轮SHA1哈希不计算自己。 – 2013-12-17 06:16:25