Blocking is a common occurrence in an SQL Server environment, and although it sounds like a serious problem, it is actually a function designed to keep the database up and running without risking the integrity of the information itself.

That said, it is still possible for blocking to get out of hand and create a number of key problems which you will need to troubleshoot. Here is a quick look at the nature of these issues and the steps you can take to resolve them.

Performance penalties

The main complication caused by too much SQL Server blocking is that the performance of the database will suffer, as SentryOne’s team explains.

The more processes which have exclusive locks on server resources, the greater the likelihood that blocking will arise and other processes will effectively have to form an orderly queue until the lock is released and the resource is freed up.

If these processes create chains of locks and blocks, then it will take longer for operations to complete, creating delays that will hamper the speed and responsiveness of the apps which rely on the server to function.

While a small amount of blocking, with shorter blocks, is entirely acceptable and does not need to be remedied, any blocking which occurs consistently and creates these queues leading to performance penalties will need to be looked at. Start with any blocks that last for more than five seconds, and aim to optimize the queries that are causing these blocks.

The deadlocking dilemma

Server blocking may not always be a bad thing, but if there is too much of it then it is also likely that other underlying maintenance issues are playing a part in compromising performance.

SQL server deadlocks are an additional symptom to be on the lookout for, as these errors indicate that certain processes are competing over the same resource and are unable to transition away from the resource that they currently occupy, meaning that one will be selected for termination.

This ominous-sounding function is one again not as bad as it might seem, but will mean that the database runs sub-optimally. Processes which are terminated due to deadlocks arising can be re-run, but this may need to occur manually, and queries that create deadlocks definitely need to be ameliorated rather than allowed to fester.

Vigilance is key

SQL Server blocking is something that every DBA needs to be conscious of when they go about their duties, since by monitoring this aspect of the database’s operations it will be possible to see problems as soon as possible and act to address them sooner rather than later.

Equally it should not be your goal to eliminate all blocking, because of the vital role it plays in an SQL Server context. Furthermore as you familiarize yourself with the ins and out of blocking, it should take you less time to pinpoint potentially problematic conflicts, especially if you use server monitoring software to assist you and also consider other culprits behind poor performance.

Share To: