我不确定我是不是做错了什么,或者我是否应该抛弃SQL成员提供程序,而使用我们自己的提供程序。我正在努力通过减少数据库调用次数来优化我们的web应用程序/服务性能。为此,我连接了实体框架分析器(EFProf),这非常棒。
看起来像是从一个对Membership.ValidateUser(用户名,密码)的调用中,我得到了8个对数据库的调用。4个选择和4个更新。似乎完全相同的selects和updates序列在一行中重复两次。它根据用户名选择用户数据,根据userId再次选择,然后更新上次登录和上次活动日期(最后两个作为两个单独的update语句发送)。
当我们加上我们在Azure上运行的事实时,这就变成了一个更大的问题,因此数据库不在同一台机器上或紧挨着web服务器,所以每次db调用平均需要3-10毫秒。
对此有什么想法吗?有没有人注意到过这种行为?这似乎只是MSFT需要优化的东西,但我想不管怎样我还是要问一下。
谢谢。
发布于 2012-08-20 23:25:51
Azure上不支持SqlMembershipProvider和SqlRoleProvider,建议迁移到universal providers。我不确定这是否是它如此健谈的原因,但是新的提供商已经内置了Azure支持。
https://stackoverflow.com/questions/12040447
复制相似问题