2013-07-19 111 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

谢谢你们,我已经完成了这个使用聚合表。我运行一个作业来过夜聚合数据,这限制了行数,并且报告现在运行良好。