我有巨大的存储过程。我只粘贴其中的一小部分。
我的查询:
--declare variable and Select Statement goes here
WHERE ((v.[RoleID] IN (
SELECT [dbo].[aspnet_UsersInRoles].roleid
FROM [dbo].[aspnet_UsersInRoles]
INNER JOIN [dbo].[aspnet_Users]
ON [dbo].[aspnet_Users].userid = [dbo].[aspnet_UsersInRoles].userid
WHERE
[dbo].[aspnet_Users].username = @UserName
UNION ALL
SELECT [RoleId]
FROM dbo.aspnet_roles
WHERE loweredrolename = 'anonymous user')
OR v.username = @UserName))
查询工作完美,但需要很长时间才能执行。条件里面有这么多WHERE
条件IN
。我认为里面的子查询IN
需要时间。有没有办法优化这个查询并替换IN
内部WHERE
条件。或者建议我另一种方法来优化这种类型的查询。谢谢。