我正在使用 SQL Server 2012。
我正在尝试优化这样的查询:
SELECT TOP 20 ta.id,
ta.name,
ta.amt,
tb.id,
tb.name,
tc.name,
tc.id,
tc.descr
FROM a ta
INNER JOIN b tb
ON ta.id = tb.id
INNER JOIN c tc
ON tb.id = tc.id
ORDER BY ta.mytime DESC
查询运行大约需要 5 - 6 秒。连接中使用的所有列都有索引。这些表有 500k 条记录。
我的问题是:当我从选择中删除列 tc.name、tc.id 和 tc.descr 时,查询会在不到一秒的时间内返回结果。为什么?