title: Optimising Large SQL Server Tables
body: <p>I have a very large table with around 50 million rows and 15 columns. Whenever I read, I always need all columns so I can't split them. I have a clustered index on the table with 4 keys and I always read data using those keys. </p>
  
  <p>But the performance is still slow, my queries are fairy simple like this</p>
  
  <pre><code>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
  </code></pre>
  
  <p>I'm not using any <code>IN</code> operator or any sub queries here on any inline functions... which I know obviously make it slow. I've looked at partitioning but not sure about that, can I get some performance improvement by doing partition? </p>
  
  <p>OR is there anything else I can do?</p>
  
  <p>I'm using SQL Server 2012 Enterprise Edition</p>
  
  <p>Please help!</p>