(uudelleenjulkaisu, tai käyttämällä tätä tietoa kaupallisessa tuotteessa/verkkosivuilla, on kielletty ilman lupaa. Kaikki muu käyttö on sallittua. Jos olet epävarma, kysy.)
(Takaisin pääsivulle…)
kuvaus:
yksinkertaisin selitys tälle odotustyypille on, että käynnissä on rinnakkaisia suunnitelmia. Paljon on kirjoitettu tästä odotustyypistä ja mitä asialle pitäisi tehdä, ja valitettavasti siellä on paljon huonoja neuvoja. Kun vaihto iteraattori (esim. Repartition Streams) tai rinnakkainen skannaus kulkee, on vähintään yksi cxpacket odottaa (ohjaus säiettä), ja mahdollisesti muut, jos on vinossa työnjako.
älä vain vähennä palvelimen MAXDOP yrittää vähentää tai poistaa näitä! Lue tarkemmat selitykset ja neuvot alla olevista linkeistä.
(Books Online description: ”esiintyy rinnakkaisilla kyselysuunnitelmilla, kun yritetään synkronoida kyselyprosessorin vaihto-iteraattori. Jos odottaminen on liiallista, eikä sitä voida vähentää säätämällä kyselyä (kuten lisäämällä indeksejä), harkitse kustannuskynnyksen säätämistä yhdensuuntaisuuden suhteen tai parallelismin asteen alentamista.”)
kysymyksiä / kommentteja tästä odotustyypistä? Klikkaa tästä lähettääksesi Paulille sähköpostia, varsinkin jos sinulla on tietoja lisättäväksi tähän aiheeseen.
lisätty SQL Server-versiossa:
ennen 2005/2005
poistettu SQL Server-versiossa:
N/A
laajennetut tapahtumat wait_type-arvo:
map_key-arvo sys: ssä.dm_xe_map_values on 187 vuosina 2008 ja 2008 R2 ja 191 vuosina 2012 ja 2014 RTM. Vuoden 2014 RTM: n jälkeen sinun täytyy tarkistaa DMV saadaksesi viimeisimmän arvon, sillä jotkin map_key-arvot ovat muuttuneet myöhemmissä rakennuksissa.
muita tietoja:
cxpacket Waitsin aiheuttama polvireaktio on yrittää poistaa tai vähentää niitä. Tämä ei pidä paikkaansa, sillä ne voivat olla täysin normaali osa työtaakkaasi. Sinun täytyy tutkia, missä ne tapahtuvat ja määrittää, onko parallelism on voimassa vai ei, ja jos voimassa, toimii normaalisti tai onko vääristynyt parallelism tapahtuu.
kirjoitin kaksi yksityiskohtaista artikkelia cxpacket Waitsin ymmärtämisestä ja vianmäärityksestä sqlperformance.com:
- Kneen-Jerk Wait Statistics: cxpacket
- More on cxpacket Waits: Skewed Parallelism
huomaa, että vuonna 2016 SP2, 2017 RTM CU3, ja Azure SQL Database, CXPACKET wait on jaettu siten, että hyvänlaatuinen, ei-toimiva parallelism waits näkyy nyt cxconsumer waits. Tämä tarkoittaa, että pitäisi olla vähemmän CXPACKET odottaa, ja ne, jotka jäävät ovat todennäköisesti osoitus suorituskyvyn ongelma.
tunnetut esiintymät SQL Server-palvelussa (luettelonumero täsmää kutsupinon luetteloon):
alla olevat Pinot ovat kaikki esimerkkejä rinnakkaisista säikeistä eri kyselysuunnitelmaoperaattoreilta. On monia, monia muita tapahtumia, joissa on samanlaisia pinoja.
lyhennetyt kutsupinot (luettelon numero vastaa tunnettujen esiintymien luetteloa):
- 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