CXPACKET

(republicação, ou utilização desta informação em um produto comercial/site, é proibida sem permissão. São autorizadas todas as outras utilizações. Em caso de dúvida, por favor pergunte.)

(voltar à página principal…)

Descrição:

a explicação mais simples deste tipo de espera é que existem planos paralelos em execução. Muito foi escrito sobre este tipo de espera e o que fazer sobre isso, e infelizmente há um monte de maus conselhos lá fora. Quando um iterador de troca (ex. Correntes de repartição) ou de varredura paralela, haverá pelo menos uma espera CXPACKET (para o fio de controle), e possivelmente outros se houver uma distribuição distorcida do trabalho.

não reduza apenas o servidor MAXDOP para tentar reduzir ou remover estes! Por favor, leia as explicações e conselhos detalhados nos links abaixo.

(Books Online description: “Occurs with parallel query plans when trying to synchronize the query processor exchange iterator. Se a espera é excessiva e não pode ser reduzida através da afinação da consulta (como a adição de índices), considere ajustar o limiar de custo para o paralelismo ou reduzir o grau de paralelismo.”)

Questions / comments on this wait type? Clique aqui para enviar um e-mail ao Paul, especialmente se você tiver alguma informação para adicionar a este tópico.

adicionado na versão do servidor SQL:

Antes de 2005/2005

removido na versão do servidor SQL:

N / A

Extended Events wait_type value:

o valor map_key no sys.dm_xe_map_values is 187 in 2008 and 2008 R2, and 191 in 2012 and 2014 RTM. Depois de 2014 RTM, você deve verificar o DMV para obter o valor mais recente como alguns valores map_key mudaram em compilações posteriores.

outras informações:

a reacção da joelheira ao cxpacket waits é tentar removê-los ou reduzi-los. Isto é incorrecto, pois pode ser uma parte perfeitamente normal da sua carga de trabalho. Você deve investigar onde eles estão ocorrendo e determinar se o paralelismo é válido ou não, e se válido, está funcionando normalmente ou se há paralelismo distorcido acontecendo.

eu escrevi dois artigos detalhados sobre o entendimento e a resolução de problemas CXPACKET espera sqlperformance.com:

  • Knee-Jerk Estatísticas de Espera: CXPACKET
  • Mais sobre CXPACKET Espera: Inclinada Paralelismo

Note-se que, em 2016, SP2, 2017 RTM CU3, e Banco de dados SQL Azure, o CXPACKET aguarde foi dividido de modo que, benigno, não-acionáveis paralelismo aguarda agora mostrar como o CXCONSUMER espera. Isto significa que deve haver menos espera CXPACKET, e aqueles que permanecem são mais propensos a ser indicativo de um problema de desempenho.

ocorrências conhecidas no servidor SQL (o número da lista corresponde à lista de pilha de chamadas):

as pilhas abaixo são todos exemplos de linhas paralelas de vários operadores de plano de consulta. Há muitas, muitas mais Ocorrências com pilhas semelhantes.

Abreviado pilhas de chamada (número da lista de jogos conhecidos ocorrências lista):

  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

Deixe uma resposta

O seu endereço de email não será publicado.