2015-11-03 39 views
3

我有一個百萬行的一個臨時表,我只是需要經過所有的行,並做一些基本的標量計算,這樣的事情:加快哈希匹配操作

SELECT m.BatteryID, m.CarID, /*calculating some scalar*/ 
FROM #Return m 
GROUP BY m.CarID, m.YearTime, m.BatteryID; 

的表有一個身份1,1聚集索引PK。

查詢計劃看起來是這樣的: enter image description here

這表明我有一個聚集索引掃描這是很好的,因爲我總是用所有行從表中,因此樹專程從頂部到底部。 另外,聚集索引掃描最耗時(17%),但哈希匹配(65%) 有沒有什麼方法可以提高這種簡單場景的性能?

謝謝!

+1

您可以嘗試在'CarId,YearTime,BatteryId'上添加索引。 –

+1

列存儲索引將在這裏提供10-100倍的加速比。 – usr

+1

@usr是的,但列存儲索引不在sql2008中 – Avithohol

回答

2

將索引作爲(CarId,YearTime,BatteryId)添加後,它變爲8%StreamAggregate和90%Clustered Index掃描。 謝謝Gordon