title: Querying a billion rows in sql server with a quick response time
body: <p>I have a table having 300 columns and approx a billion rows of data. I need to query such data with a very very quick response time (I did it SQL and end up with unsatisified users). I started researching last year and tried cassandra, mongoDB, Olap and SQL Server. I had no luck with any of them, I admit if had paid little more attention things would be different now but I have no option but to ask here. Having a SQL background I need to do it in SQL for obvious reasons.</p>
  
  <p>I got three servers, each having</p>
  
  <ul>
  <li>OS: Windows 2008 64-bit</li>
  <li>SQL Server 2008</li>
  <li>CPU: 2x Xeon E5420 (8 cores total)</li>
  <li>RAM: 24 GB</li>
  <li>HDD RAID: 2 TB                         </li>
  </ul>
  
  <p>Any suggestions on hardware, database solutions? Please forgive me if this doesn't make any sense.</p>
  
  <p>Thanks!</p>
  
  <p><strong>Edit 1</strong> : I got a PK on <code>id</code> column, each column has a non clustered index. Queries are simple - a mix of several ANDs/ORs: </p>
  
  <pre><code>Select count(*) 
  from tbl 
  where (col1 = value1 AND col2 in (value1, value2) AND...) 
    and (col1 = value1 OR col2 in (value1, value2) OR...) 
  </code></pre>
  
  <p><strong>Edit 2</strong> : The table contains consumer data name, address, state, email etc. I have tried splitting them and querying them in parallel apart from above listed solutions.</p>
  
  <p><strong>Edit 3</strong> : I am expecting 3 to 4 users using the site at a time.</p>