title: SQL Server nonclustered indexes
body: <p>I am trying to figure out the best way to handle the indexes on a table in SQL Server.</p>
  
  <p>I have a table that only needs to be read from. No real writing to the table (after the initial setup).</p>
  
  <p>I have about 5-6 columns in the table that need to be indexed. Does it make more sense to setup one nonclustered index for the entire table and add all the columns that I need indexed to that index or should I set up multiple nonclustered indexes each with one column?</p>
  
  <p>I am wondering which setup would have better read performance.</p>
  
  <p>Any help on this would be great.</p>
  
  <p>UPDATE:</p>
  
  <p>There are some good answers already but I wanted to elaborate on my needs a little more.</p>
  
  <p>There is one main table with auto records. I need to be able to perform very quick counts on over 100MM records. The where statements will vary but I am trying to index all of the possible columns in the where statement. So I will have queries like:</p>
  
  <pre><code>SELECT COUNT(recordID)
  FROM tableName
  WHERE zip IN (32801, 32802, 32803, 32809) 
  AND makeID = '32' 
  AND modelID IN (22, 332, 402, 504, 620)
  </code></pre>
  
  <p>or something like this:</p>
  
  <pre><code>SELECT COUNT(recordID)
  FROM tableName
  WHERE stateID = '9' 
  AND classCode IN (3,5,9) 
  AND makeID NOT IN (55, 56, 60, 80, 99)
  </code></pre>
  
  <p>So there is about 5-6 columns that could be in the where clause but it will vary a lot on which ones.</p>