2013-07-19 145 views
1

我有一個非常大的表,大約有5000萬行和15列。每當我閱讀時,我總是需要所有列,所以我不能將它們分開。我有一個4鍵的表上的聚簇索引,我總是使用這些鍵讀取數據。優化大型SQL Server表

但性能仍然很慢,我的疑問是童話簡單的這樣

select 
    CountryId, RetailerID, FY, 
    sum(col1), sum(col2),.....sum(col15) 
from mytable a 
join product p on a.productid = p.id 
join ...... 
join ..... 
join ...... 
join ..... 
Where ....... 
group by CountryId, RetailerID, FY 

我沒有使用任何IN運營商或任何在這裏查詢子上的任何內聯函數...我知道做明顯它慢。我已經看過分區但不確定,我可以通過分區來獲得一些性能改進嗎?

或者還有什麼我可以做的嗎?

我正在使用SQL Server 2012企業版

請幫忙!

+0

是否所有〜5,000萬行都會定期更新或者有些歷史記錄,並且不會更新? – jpw

+4

你有沒有試過看查詢計劃? –

+1

我同意,請讓我們先看看執行計劃。 – 0xCAFEBABE

回答

0

謝謝你們,我已經完成了這個使用聚合表。我運行一個作業來過夜聚合數據,這限制了行數,並且報告現在運行良好。