LOCKING, BLOCKING and DEAD LOCKING.
LOCKING
occurs when connection needs access to a piece of data in database and it’s
necessary for SQL Server when managing multiple connections. Just assume an
example of your garage, when you park your car in garage, basically you are
locking the place of garage.
BLOCKING
occurs when two connections need access to same piece of data concurrently and
one connection is blocked because at a particular time, only one connection can
have access. Just like, you stop (block) your car on a traffic signal because
some other car or cars are using the crossing area.
DEAD
LOCK occurs when one connection is blocked and waiting for a second to complete
his work, but on other side, second connection is also waiting for first
connection to release the lock. Just like, you need to cross the signal area
but same time someone else from opposite side also want to cross the signal.
Now, you need a way which other is holding and other need way where your car
is.
That
is why, one should be clear that locking is integral part of SQL Server to
handle concurrency, blocking is bad when one connection/transaction is waiting
unnecessary for a long time, and deadlocking is a phenomenon which should never
occur.
No comments:
Post a Comment