(Publikování, nebo pomocí informací v komerčním produktu/stránky, je zakázáno bez povolení. Všechna ostatní použití jsou povolena. V případě pochybností, zeptejte se.)
(Zpět na hlavní stránku…)
Popis:
nejjednodušší vysvětlení tohoto počkat typ je, že existují paralelní plány běží. O tomto typu čekání a o tom, co s tím dělat, bylo napsáno mnoho, a bohužel je tam spousta špatných rad. Když výměnný iterátor (např. Nebo paralelní skenování běží, bude alespoň jeden CXPACKET čekat (pro řídicí vlákno) a případně další, pokud dojde k zkosenému rozdělení práce.
nesnižujte pouze server MAXDOP a pokuste se je snížit nebo odstranit! Přečtěte si podrobná vysvětlení a Rady v níže uvedených odkazech.
(knihy online popis: „vyskytuje se u paralelních plánů dotazů při pokusu o synchronizaci iterátoru výměny procesoru dotazu. Pokud je čekání nadměrné a nelze jej snížit vyladěním dotazu (například přidáním indexů), zvažte úpravu prahové hodnoty nákladů pro paralelismus nebo snížení stupně paralelismu.“)
dotazy/komentáře k tomuto typu čekání? Kliknutím sem pošlete Paulovi e-mail, zvláště pokud máte k tomuto tématu nějaké informace.
Přidáno v verzi serveru SQL Server:
Pre-2005/2005
Odstraněn v SQL Server verze:
N/A
Rozšířené Události wait_type hodnota:
map_key hodnota v sys.dm_xe_map_values je 187 v 2008 a 2008 R2 a 191 v 2012 a 2014 RTM. Po 2014 RTM musíte zkontrolovat DMV, abyste získali nejnovější hodnotu, protože některé hodnoty map_key se změnily v pozdějších sestavách.
další informace:
reakce kolenního trhnutí na cxpacket waits je pokusit se je odstranit nebo snížit. To je nesprávné, protože mohou být zcela normální součástí vaší pracovní zátěže. Musíte prozkoumat, kde se vyskytují, a určit, zda je paralelismus platný nebo ne, a pokud je platný, funguje normálně nebo zda se děje zkosený paralelismus.
napsal jsem dva podrobné články o pochopení a řešení problémů čeká na CXPACKET sqlperformance.com:
- Koleno-Blbec Čekat Statistiky: CXPACKET
- Více na CXPACKET Čeká: Zkosený Paralelismus
Všimněte si, že v roce 2016 SP2, 2017 RTM CU3, a Databáze SQL Azure, CXPACKET se dočkat, byla rozdělena tak, že benigní, nenapadnutelného paralelismus čeká nyní ukázat jako CXCONSUMER čeká. To znamená, že by mělo být méně cxpacket čeká, a ty, které zůstávají jsou více pravděpodobné, že svědčí o problému výkonu.
známé výskyty v SQL Serveru (číslo seznamu odpovídá seznamu volání zásobníku):
níže uvedené zásobníky jsou všechny příklady paralelních vláken od různých operátorů plánu dotazů. Existuje mnoho, mnohem více výskytů s podobnými zásobníky.
Zkrácené zásobníky volání (seznam číslo odpovídá známé výskyty seznamu):
- 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