我得到了这个查询,但它真的很慢。我是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
由于
答案 0 :(得分:2)
如果WarrantyRegistration
表具有添加注册的用户的ID,则应加入ID而不是CHARINDEX()
加入。如果你不能进行外键加入,你应该认真考虑修改你的模式,以便尽可能。
答案 1 :(得分:0)
您正在执行aspnet_Users
*和* WarrantyRegistration
的CROSS JOIN,即使这可能并不明显,因为每个WarrantyRegistration记录必须(再次)搜索每个aspnet_Users记录。
您可以在WarrantyRegistration.Comment
*上创建索引以支持此查询吗?