SQL查询运行缓慢

时间:2013-03-15 19:27:35

标签: sql

我得到了这个查询,但它真的很慢。我是SQL的新手,所以对Tuning的任何帮助都会受到赞赏。

SELECT 
    REPLACE(LoweredUserName,'@domain.com','') as Name, 
    COUNT(LoweredUserName) as Numb
FROM 
    aspnet_Users 
JOIN 
    WarrantyRegistration ON CHARINDEX('Added by ' + aspnet_Users.LoweredUserName, 
WarrantyRegistration.Comment) > 0
GROUP BY
    aspnet_Users.LoweredUserName 
ORDER BY
    LoweredUserName ASC

由于

2 个答案:

答案 0 :(得分:2)

如果WarrantyRegistration表具有添加注册的用户的ID,则应加入ID而不是CHARINDEX()加入。如果你不能进行外键加入,你应该认真考虑修改你的模式,以便尽可能。

答案 1 :(得分:0)

您正在执行aspnet_Users *和* WarrantyRegistration的CROSS JOIN,即使这可能并不明显,因为每个WarrantyRegistration记录必须(再次)搜索每个aspnet_Users记录。

您可以在WarrantyRegistration.Comment *上创建索引以支持此查询吗?