title: sql server set implicit_transactions off and other options
body: <p>I am still learning sql server somewhat and recently came across a select query in a stored procedure which was causing a very slow fill of a dataset in c#. At first I thought this was to do with .NET but then found a suggestion to put in the stored procedure:</p>
  
  <p>set implicit_transactions off</p>
  
  <p>this seems to cure it but I would like to know why also I have seen other options such as:</p>
  
  <ul>
  <li>set nocount off</li>
  <li>set arithabort on</li>
  <li>set concat_null_yields_null on</li>
  <li>set ansi_nulls on</li>
  <li>set cursor_close_on_commit off</li>
  <li>set ansi_null_dflt_on on</li>
  <li>set ansi_padding on</li>
  <li>set ansi_warnings on</li>
  <li>set quoted_identifier on</li>
  </ul>
  
  <p>Does anyone know where to find good info on what each of these does and what is safe to use when I have stored procedures setup just to query of data for viewing. </p>
  
  <p>I should note just to stop the usual use/don't use stored procedures debate these queries are complex select statements used on multiple programs in multiple languages it is the best place for them.</p>
  
  <p><strong>Edit: Got my answer didn't end up fully reviewing all the options but did find</strong></p>
  
  <p><strong>SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED</strong></p>
  
  <p><strong>Sped up the complex queries dramatically, I am not worried about the dirty read in this instance.</strong></p>