我遇到了一个选择语句运行时间太长的问题。我想知道我是否做错了什么,或者花这么长时间是否有意义。我使用的是 Microsoft SQL 2005 标准。我正在运行的选择需要大约 30 秒才能运行并返回大约 60000 条记录。这是sql:
SELECT l.ID, l.Number, l.Date, l.FirstName + ' ' + l.LastName Name,
isnull(l.Amount,0) Amount1, isnull(l.Interest,0) Interest1,
isnull(l.Interest2,0) Interest2, l.LastPayment,
l.NextDueDate, isnull(l.Aging,0) Aging, isnull(l.InterestRate,0) InterestRate,
ls.DisplayValue Status, lt.DisplayValue Type, l.LocationID
FROM Table1 l
JOIN Table2 ls ON (l.Table2ID=ls.ID)
JOIN Table3 lt ON (l.Table3ID=lt.ID)
WHERE
l.Table3ID IN (SELECT Value FROM fn_Split('5,4,3', ','))
AND l.Table2ID IN (SELECT Value FROM fn_Split('8,20,9,14,18,21,22,26,13,10,27,25,23,24,16,3,11,6,4,12,19,17,5,28,7,15', ','))
AND l.LocationID IN (SELECT Value FROM fn_Split('4,6,8,9,10,14,11,12,13', ','))
Run Code Online (Sandbox Code Playgroud)
我添加了索引,但似乎没有什么可以加快速度。如果我删除选择中除 l.ID 和 l.Number 之外的所有内容,我可以在大约 8 …