天天看點

Wait Type 整理

整理SQL Server中經常出現的等待類型。

一,CXCONSUMER

CXCONSUMER: Occurs with parallel query plans when a consumer thread waits for a producer thread to send rows. This is a normal part of parallel query execution.

CXCONSUMER等待最簡單解釋是:有并發的查詢計劃在運作,通常可以被忽略,該等待類型從SQL Server 2017 RTM CU4時開始正式使用。之前的CXPACKET 等待被拆分成良性(benign )和可操作(actionable)的等待兩種,CXCONSUMER 用于表示 良性的CXPACKET,而 CXPACKET 用于表示 可操作性的CXPACKET。

對于一些并發查詢計劃來說,使用多線程來執行查詢,有些子線程會産生資料,稱作生産者線程,有些線程來消耗資料,稱作消費者線程。雖然生産者線程和消費者線程都會注冊CXPACKET等待,但是消費者線程注冊的CXPACKET等待是不可操作的,這是因為生産者線程注冊的CXPACKET 等待導緻消費者線程必須等待,而生産者線程是可以操作的。通過拆分消費者等待,應該減少CXPACKET等待的數量,并對剩餘的等待事件進行調查。

通過單獨把消費者的CXPACKET 等待拆分成 CXCONSUMER等待,來區分并發等待的類型。當出現CXPACKET等待,表示生産者線程出現性能問題,消費者線程等待生産者線程提供資料;當偶爾出現CXCONSUMER等待時,通常可以被忽略,但是,當經常出現CXCONSUMER等待時,就表示消費者線程出現性能問題,消費者程序無法及時把資料處理完成。

參考文檔:

CXCONSUMER wait type – history and what you need to know

作者

:悅光陰

出處

:http://www.cnblogs.com/ljhdo/

本文版權歸作者和部落格園所有,歡迎轉載,但未經作者同意,必須保留此段聲明,且在文章頁面醒目位置顯示原文連接配接,否則保留追究法律責任的權利。