As you might already know that I am a SQL Server Performance Tuning Expert who also acts as a “on-demand consultant” for many organizations across the world who have performance tuning or any other issue related to SQL Server. Once I was working with one of my clients and their DBA asked a question. In this blog, we would learn about possible ways to handle a situation where DBCC CHECKDB is indefinitely waiting for PREEMPTIVE_OS_DEVICEIOCONTROL.

Read More


There are so many wait types available in SQL Server and sometimes I feel that it’s an ocean of wait types. I have already written about most common wait types earlier. In this blog, we would learn about VDI_CLIENT_WORKER / VDI_CLIENT_OTHER wait type. SQL SERVER – Introduction to Wait Stats and Wait Types – Wait Type – Day 1 of 28

Read More

SQL SERVER – Wait Stats Collection Scripts for 2016 and Later Versions

Yesterday I posted a blog about a new DMV, which is introduced in SQL Server 2016. You can read the blog post here: Get Wait Stats Related to Specific Session ID With sys.dm_exec_session_wait_stats. After reading the blog post, I have received quite a few emails about SQL Server Wait Stats Collection Scripts. One of the question was is my earlier script still valid to collect the SQL Wait Stats for SQL Server 2016 and Later Versions.

Read More

SQL SERVER – 2016 – Wait Stats and Queues Script Updated – Identify Resource Bottlenecks

NOTE: This script will just work fine with earlier version of SQL Server (2008, 2012, 2014) along with SQL Server 2016. It will give the expected results in all the SQL Server versions. This script will help you identify resource bottlenecks in your SQL Server.

A few years ago, I wrote the script which will help us identify SQL Wait Stats and Queues. It is a very popular script. You can find the link to the script over here: Introduction to Wait Stats and Wait Types. However, it has been a long time since I wrote that script and it was written for SQL Server 2008.

Read More