title: In a Data Warehouse scenario is there any disadvantage to using WITH(NOLOCK)
body: <p>I have a Kimball-style DW (facts and dimensions in star models - no late-arriving facts rows or columns, no columns changing in dimensions except expiry as part of Type 2 slowly changing dimensions) with heavy daily processing to insert and update rows (on new dates) and monthly and daily reporting processes.  The fact tables are partitioned by the dates for easy rolloff of old data.</p>
  
  <p>I understand the <code>WITH(NOLOCK)</code> can cause uncommitted data to be read, however, I also do not wish to create any locks which would cause the ETL processes to fail or block.</p>
  
  <p>In all cases, when we are reading from the DW, we are reading from fact tables for a date which will not change (the fact tables are partitioned by date) and dimension tables which will not have attributes changing for the facts they are linked to.</p>
  
  <p>So - are there any disadvantages? - perhaps in the execution plans or in the operation of such <code>SELECT</code>-only queries running in parallel off the same tables.</p>