What’s in Enterprise only? (Running DBCC CHECK* in parallel)

Parallelizing the execution of DBCC CHECK* can give a significant performance boost to its execution and significantly reduce run times (especially if the objects stored in the database are spread across multiple files so the IOs can also be parallelized.)

Under certain circumstances, DBCC CHECKDB, CHECKFILEGROUP, or CHECKTABLE can run on several threads in parallel, in order to make the scan of the database more efficient. One of the conditions that must be met so that the CHECK is parallelized is for the server to be running Enterprise Edition. It is still up to query execution engine though to determine whether the CHECK* can be parallelized based on current server activity. Since the CHECK* is driven by a query, it is subject to the same parallelism restrictions that other queries are: the server's MAXDOP and query cost for parallelism settings, whether there are enough idle schedulers on the server, etc.

Therefore (and this is specially true for large databases), if you want to significantly reduce the time it takes to run your regularly scheduled databases’ consistency checks, go for an Enterprise Edition (or a Developer Edition or an Evaluation Edition, both of which behave exactly like the Enterprise does. The only difference among them three is their licensing.)

This post is part of the a series I decided to call “Understanding the value of the Enterprise Edition, one feature at a time” which I started in September 2011 and will grow on a weekly basis, having a new post incorporated to the family every Friday.