title: Performance of table vs view SQL Server
body: <p>I'm working in a data warehouse that has a very large table of transactional data (hundreds of millions of rows). There are certain common ways the users want to chop up the data (see only certain transaction types, see only certain vendors, see only one month at a time, etc) and I'm trying to determine the best way to do this from a performance perspective.</p>
  
  <p>The data is static, loaded monthly. So, I don't have to deal with constantly changing data.</p>
  
  <p>Should I create views that only contain the desired records? Or, should I create a table and load the data for each use case?</p>
  
  <p>Basically, I think my question is this: If I have a large, static table, should I write a view that filters only the records I want, and then query against that view? Or, should I create a table, load only the records I want from the main table, then query the table?</p>
  
  <p>I see plenty of discussion about "views vs queries" but what I'm really asking is "query against a view vs query against a table."</p>