I have those queries which lasts 2 or 3 minutes causing shared locks in read committed mode.
The goal of intent lock is to indicate a lower level lock exists on a table or a page to prevent other locks from happening at the page or table level.
What I don't get is why the opposite is also true, why does an intent exclusive lock waits on shared locks? The intent lock is just an indication to prevent other pages or table locks from happening. It is not an actual lock, the database does not require to lock the whole table to update a single row...
Why would the "blocked process report" report an intent exclusive lock blocked by shared locks?
I have those blockings reported by the blocked process report using extended event sessions under SQL server 2012 in read committed isolation.