title: Ado.net performance:What does SNIReadSync do?
body: <p>We have a query that takes 2 seconds to run in Sql Server Management Studio but it takes 13 seconds to be shown on a client screen.
  I used dotTrace to profile my source code and noticed there is this SNIReadSync method (part of ADO.net assemblies)that takes a lot of time to do its job(9 seconds).I ran my source over server so I could omit the network effects and the result was the same.</p>
  
  <p>It doesn't matter if I'm using OleDBConnection or SqlConnection.</p>
  
  <p>It doesn't matter if I'm using a DataReader or a DataSet.</p>
  
  <p>Connection pooling does not solve this issue(as my result shows).</p>
  
  <p>I googled this issue and I couldn't find an answer to the question that what this method is actually doing and how we can improve it.</p>
  
  <p>here's what I found on StakOverFlow that's not helpful either:
  <a href="https://stackoverflow.com/questions/1610874/snireadsync-executing-between-120-500-ms-for-a-simple-query-what-do-i-look-for">https://stackoverflow.com/questions/1610874/snireadsync-executing-between-120-500-ms-for-a-simple-query-what-do-i-look-for
  </a>  </p>