title: Is the NOLOCK (Sql Server hint) bad practice?
body: <p>I'm in the business of making website and applications that are <em>not</em> mission critical -> eg. banking software, space flight, intensive care monitoring application, etc. You get the idea.</p>
  
  <p>So, with that massive disclaimer, is it bad using the NOLOCK hint in some Sql statement? A number of years ago, it was suggested by a fellow Sql Administrator that I should use NOLOCK if I'm happy with a "dirty read" which will give me a bit more performance out of my system because each read doesn't lock the table/row/whatever.</p>
  
  <p>I was also told that it's a great solution if I'm experiencing dead-locks. So, I started following that thought for a few years until a Sql guru was helping me with some random code and noticed all the NOLOCKS in my sql code. I was politely scolded and he tried to explain it to me (why it's not a good thing) and I sorta got lost. I felt that the essence of his explanation was 'it's a band-aid solution to a more serious problem .. especially if you're experiencing deadlocking. As such, fix the root of the problem'. </p>
  
  <p>I did some googling recently about it and came across <a href="http://blogs.msdn.com/davidlean/archive/2009/04/06/sql-server-nolock-hint-other-poor-ideas.aspx" rel="noreferrer">this post</a>.</p>
  
  <p>So, can some sql db guru sensei's please enlighten me? </p>