(商用製品/ウェブサイトでこの情報を再公開または使用することは許可なしに禁止されています。 他のすべての用途が許可されています。 ご不明な点がございましたら、お気軽にお問い合わせください。)
(メインページに戻る…)
説明:
この待機タイプの最も簡単な説明は、並列プランが実行されていることです。 この待機タイプとそれについて何をすべきかについて多くのことが書かれていますが、残念ながらそこには多くの悪いアドバイスがあります。 交換イテレータ(例えば、 再分割ストリーム)または並列スキャンの実行では、少なくとも一つのCXPACKET待機(制御スレッド用)があり、作業の分布が歪んでいる場合は他のものもあります。
これらを減らすか削除しようとするために、サーバー MAXDOPを減らすだけではありません! 以下のリンクの詳細な説明とアドバイスをお読みください。
(Books Online description:”クエリプロセッサ交換イテレータを同期しようとすると、並列クエリプランで発生します。 待機時間が過剰で、クエリの調整(インデックスの追加など)によって削減できない場合は、並列処理のコストしきい値を調整するか、並列処理の程度を”)
この待機タイプに関する質問/コメントはありますか? 特にこのトピックに追加する情報がある場合は、ここをクリックしてPaulに電子メールを送信してください。バージョン:
Sql Serverで追加されたバージョン:
2005/2005より前のバージョン:
Sql Serverで削除されたバージョン:
N/A
拡張イベントwait_type値:
sysのmap_key値。dm_xe_map_valuesは、2008年と2008年のR2では187、2012年と2014年のRTMでは191です。 2014RTM以降は、一部のmap_key値が後のビルドで変更されているため、DMVをチェックして最新の値を取得する必要があります。
その他の情報:
cxpacketの待機に対する膝の反応は、それらを削除または削減しようとすることです。 これは、ワークロードの完全に正常な部分である可能性があるため、正しくありません。 それらがどこで発生しているかを調査し、並列処理が有効かどうか、および有効な場合は正常に動作しているか、または歪んだ並列処理が発生してい
私はCXPACKETの待ち時間の理解とトラブルシューティングに関する二つの詳細な記事を書きましたsqlperformance.com:
- 待機統計:Cxpacket
- Cxpacket待機の詳細:スキューされた並列処理
2016SP2、2017RTM CU3、およびAzure SQL Databaseでは、cxpacket待機が分割され、良性で実行不可能な並列処理待機がCXCONSUMER待機として表示されるようになったことに注意してください。 これは、CXPACKETの待機が少なくなり、残っている待機がパフォーマンスの問題を示す可能性が高いことを意味します。
SQL Serverでの既知の発生(リスト番号はコールスタックリストに一致します):
以下のスタックは、さまざまなクエリプラン演算子からの並列スレッドの例です。 同様のスタックを持つ多くの、より多くの出現があります。
短縮コールスタック(リスト番号は既知の出現リストに一致します):
- SOS_Task::PostWait+90
EventInternal::Wait+2c6
EventInternal::WaitAllowPrematureWakeup+c7
CXPipe::Pull+156
CXTransLocal::AllocateBuffers+64
CQScanXProducerNew::AllocateBuffers+31
CQScanXProducerNew::GetRowHelper+293
CQScanXProducerNew::GetRow+15
FnProducerOpen+57
FnProducerThread+851
SubprocEntrypoint+a59
SOS_Task::Param::Execute+21e
SOS_Scheduler::RunTask+a8 - SOS_Task::PostWait+90
EventInternal::Wait+2c6
EventInternal::WaitAllowPrematureWakeup+c7
XchngWait+b5
CXPort::Open+147
CQScanXProducerNew::Open+da
FnProducerOpen+44
FnProducerThread+851
SubprocEntrypoint+a59
SOS_Task::Param::Execute+21e
SOS_Scheduler::RunTask+a8 - SOS_Task::PostWait+90
EventInternal::Wait+2c6
EventInternal::WaitAllowPrematureWakeup+c7
CXPacketList::RemoveHead+e9
CXPipe::ReceivePacket+7a
CXTransLocal::ReceiveBuffers+2d
CQScanExchangeNew::GetRowFromProducer+5f
CQScanExchangeNew::GetRowHelper+66
CQScanSortNew::BuildSortTable+2a6
CQScanSortNew::OpenHelper+c0
CQScanNew::OpenHelper+41
CQScanStreamAggregateNew::Open+30
CQScanNLJoinNew::Open+24
CQScanSortNew::BuildSortTable+3a
CQScanSortNew::OpenHelper+c0
CQScanNew::OpenHelper+41
CQScanXProducerNew::Open+c8
FnProducerOpen+44
FnProducerThread+851
SubprocEntrypoint+a59
SOS_Task::Param::Execute+21e
SOS_Scheduler::RunTask+a8 - SOS_Task::PostWait+90
EventInternal::Wait+2c6
EventInternal::WaitAllowPrematureWakeup+c7
XchngWait+b5
CXPort::Open+147
CQScanExchangeNew::Open+104
CQScanHash::ConsumeBuild+fd
CQScanHash::Open+8e
CQScanSortNew::BuildSortTable+3a
CQScanSortNew::OpenHelper+c0
CQScanNew::OpenHelper+41
CQScanXProducerNew::Open+c8
FnProducerOpen+44
FnProducerThread+851
SubprocEntrypoint+a59
SOS_Task::Param::Execute+21e
SOS_Scheduler::RunTask+a8