如果group by(int)比group by(varchar)有更好的性能?

时间:2014-03-17 20:15:15

标签: tsql group-by sqlperformance

假设我有一个类似

的表格
Mytaba(aid, int, name varchar(12),...)
myTabb(bid, aid, ...)

然后我有2个SQL与组相似,以获得相同的结果:

Select aid,sum(...) 
from Mytaba a join mytabb b on a.aid = b.aid
group by aid

Select a.name,sum(...) 
from Mytaba a join mytabb b on a.aid = b.aid
group by a.name

问题:如果group by(int)有更好的性能,那么group by(varchar)?

1 个答案:

答案 0 :(得分:0)

假设两者都被索引为int将具有优势,因为它更小 更多的行具有相同的内存量,
无论如何,通过连接,查询必须访问辅助。

如果辅助和名称都是唯一的,那么这两个只会是等价的。

在myTabb中,有关援助的指数会有所帮助 或者,如果这是一个复合键,那么订单辅助,出价可能会导致索引搜索而不是扫描 - 这是一件好事,您不需要单独的辅助索引。