title: What is the fastest approach to populate MS SQL Database with large amount of data
body: <p><strong>Dilemma:</strong></p>
  
  <p>I am about to perform population of data on MS SQL Server (2012 Dev Edition). Data is based on production data. Amount is around 4TB (around 250 million items). </p>
  
  <p><strong>Purpose:</strong></p>
  
  <p>To test performance on full text search and on regular index as well. Target number should be around 300 million items around 500K each. </p>
  
  <p><strong>Question:</strong> </p>
  
  <p>What should I do before to speed up the process or consequences that I should worry about?</p>
  
  <p>Ex. </p>
  
  <ol>
  <li>Switching off statistics? </li>
  <li>Should I do a bulk insert of 1k items per transaction instead of single transaction? </li>
  <li>Simple recovery model? </li>
  <li>Log truncation? </li>
  </ol>
  
  <p><strong>Important:</strong></p>
  
  <p>I will use sample of 2k of production items to create every random item that will be inserted into database. I will use near unique samples generated in c#. It will be one table:</p>
  
  <pre><code>table 
  (
      long[id], 
      nvarchar(50)[index], 
      nvarchar(50)[index], 
      int[index], 
      float, 
      nvarchar(50)[index], 
      text[full text search index]
  )
  </code></pre>