title: Understanding SIX lock in SQL Server
body: <p>Can somebody explain me how a process can acquire <code>SIX</code> lock on a page? I my deadlock-graph xml file I see that a process running under <strong>RC isolation level</strong> (executing a <code>select</code> statement at the moment of deadlock) holds a <code>SIX</code> lock on a page. </p>
  
  <p>What does this mean and how that lock could have been acquired?
  From what I got from <a href="http://msdn.microsoft.com/en-us/library/aa213039%28v=sql.80%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa213039%28v=sql.80%29.aspx</a> <code>SIX</code> locks protects <code>S</code>-locks on all resources and <code>IX</code> locks on some resources lower in the hierarchy.</p>
  
  <p>For my case that would be <code>IX</code>-locks on rows? Can <code>IX</code>-lock be placed on a row? (I guess no). I am confused.</p>
  
  <p>Another thing is that I expect several <code>X</code>-locks on rows and no <code>S</code>-locks at all (since the <strong>IL</strong> is <strong>ReadCommited</strong>). Why do I have the whole page locked with <code>SIX</code> if I only inserted several records in previous statement?</p>
  
  <p>up!</p>