title: What is the ideal indexing strategy for SQL Server?
body: <p>A friend and I are working on a new project that is using SQL Server. In the SQL that I've done past projects, I've always put indexes on any field that is used in a JOIN or a WHERE. </p>
  
  <p>My friend has added them only when there has been a performance need for them. The idea being that there is a cost to maintaining the indexes, and you want to be sure that it is worth paying that cost. It is fair to say that some of the queries are not going to be used often, and also that some tables will be added to more actively than others.</p>
  
  <p>I'm therefore looking for advice on what is the "best practice" for database indexes. What works well for you?</p>