我正在运行一个ASP.NET mvc5应用程序,目前有500万用户.它托管在Azure云中.对于身份验证,我使用Asp.Net Identity for EntityFramework.
但是,我得到的用户越多,寄存器功能就越慢.我尝试缩放数据库,但结果仍然相同.新用户注册大约需要6-7秒.
我也试着搜索如何提高身份系统的性能,但我找不到任何相关的东西.
我真的很想知道是否有人知道如何才能提高它的性能.
更新:我在搜索的字段上有索引,而且,我在Azure中选择的数据库订阅是具有200个DTU的P3 SQL数据库.
我描述了数据库,我发现了一个可疑的选择查询.我删除了一些预测并用"...."替换它们,所以它不会太长,你可以看到什么是查询.
SELECT
[UnionAll2].[Gender] AS [C1],
....
[UnionAll2].[UserName] AS [C27],
[UnionAll2].[C1] AS [C28],
[UnionAll2].[UserId] AS [C29],
[UnionAll2].[RoleId] AS [C30],
[UnionAll2].[UserId1] AS [C31],
[UnionAll2].[C2] AS [C32],
[UnionAll2].[C3] AS [C33],
[UnionAll2].[C4] AS [C34],
[UnionAll2].[C5] AS [C35],
[UnionAll2].[C6] AS [C36],
[UnionAll2].[C7] AS [C37],
[UnionAll2].[C8] AS [C38],
[UnionAll2].[C9] AS [C39]
FROM (SELECT
CASE WHEN ([Extent2].[UserId] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1],
[Limit1].[Gender] AS [Gender],
....
[Limit1].[UserName] AS [UserName],
[Extent2].[UserId] AS …