Unmasking CXPACKET and CXCONSUMER in SQL Server: What Your Execution Plan Isn’t Telling You


Introduction 

When you see high CPU and the query plan says « parallelism, » one of the first suspects is CXPACKET. Since SQL Server 2016 SP2, Microsoft split this into two wait types:  cxconsumer and cxpacket. These are critical for understanding whether your server is suffering from parallelism inefficiencies or just synchronizing threads as expected. This blog demonstrates how to simulate both waits, how to capture them live, and how to determine which part of your execution plan is to blame.

This article walks through how to simulate both waits—CXCONSUMER and CXPACKET—under controlled conditions. We’ll first demonstrate how CXCONSUMER arises