CXPACKET

(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):

  1. 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
  2. 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
  3. 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
  4. 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

You might also like

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.