title: Async Action + Sync DBQuery VS sync Action + Async DbQuery
body: <p>I am using Asp.net MVC 5 under .net framework 4.5.1. Lots of examples on internet show the usage of async action of controller like following:</p>
  
  <pre><code>public async Task&lt;ActionResult&gt; Practice()
  {
      ......
      SqlCommand command = new SqlCommand ();
      ......
      await command .ExecuteNonQuery();
      ......   
      return View();
  }
  </code></pre>
  
  <p>Meanwhile, the SqlCommand provides async method like ExecuteNonQueryAsync, which implements async opertaion internally, the code is something like: </p>
  
  <pre><code>public ActionResult Practice()
  {
      ......
      SqlCommand command = new SqlCommand ();
      ......
      command.ExecuteNonQueryAsync();
      ......     
      return View();
  }
  </code></pre>
  
  <p>Supposing all time-cosuming operations are database CRUD, I want to know is there any difference between the above two code snippets?</p>
  
  <p>Concretely speaking, are the two ways all lead to the final goal: "a thread is not blocked from responding to other requests while it waits for the first request to complete. Therefore, asynchronous requests prevent request queuing and thread pool growth when there are many concurrent requests that invoke long-running operations." ?</p>
  
  <p>Thanks a lot.</p>