title: Does inserting data into SQL Server lock the whole table?
body: <p>I am using <a href="http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework">Entity Framework</a>, and I am inserting records into our database which include a blob field. The blob field can be up to 5&nbsp;MB of data.</p>
  
  <p>When inserting a record into this table, does it lock the whole table?</p>
  
  <p>So if you are querying any data from the table, will it block until the insert is done (I realise there are ways around this, but I am talking by default)?</p>
  
  <p>How long will it take before it causes a deadlock? Will that time depend on how much load is on the server, e.g. if there is not much load, will it take longer to cause a deadlock?</p>
  
  <p>Is there a way to monitor and see what is locked at any particular time?</p>
  
  <p>If each thread is doing queries on single tables, is there then a case where blocking can occur? So isn't it the case that a deadlock can only occur if you have a query which has a join and is acting on multiple tables?</p>
  
  <p>This is taking into account that most of my code is just a bunch of select statements, not heaps of long running transactions or anything like that.</p>