AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 16832
Accepted
Martin Sjöberg
Martin Sjöberg
Asked: 2012-04-21 13:26:22 +0800 CST2012-04-21 13:26:22 +0800 CST 2012-04-21 13:26:22 +0800 CST

Os problemas com paralelismo são mais comuns hoje em dia? Que problemas podem surgir do paralelismo?

  • 772

Esta é uma pergunta muito geral, por isso não dou muitas informações específicas. Estou mais interessado em paralelismo e suas possíveis desvantagens. Geralmente sou a favor do paralelismo como algo útil e positivo.

Parece que me deparo com mais e mais sistemas que possuem um ou mais procedimentos armazenados que apresentam problemas com muito paralelismo. Existe uma boa maneira de descobrir se esse é realmente o problema ou se há algo mais à espreita?

Normalmente o sql é um pouco complexo com talvez 5 ou mais junções e também alguns udf e ainda mais complexidade. Até agora, encontrei esses problemas examinando tudo, desde problemas de desempenho comuns, mas também de situações mais extremas com mensagens de erro como "Não foi possível criar thread ..." e também bloqueios de várias cópias simultâneas do mesmo procedimento de armazenamento.

Estou muito curioso para saber como vocês fazem para encontrar problemas como esses e também como resolvê-los. Recodificação? Jogando com MAXDOP(grau máximo de paralelismo)? E assim por diante...

sql-server deadlock
  • 2 2 respostas
  • 2801 Views

2 respostas

  • Voted
  1. Best Answer
    Aaron Bertrand
    2012-04-22T05:37:31+08:002012-04-22T05:37:31+08:00

    Escrevi sobre seis possíveis problemas com paralelismo aqui:

    • https://sqlblog.org/2009/03/21/six-reasons-you-should-be-nervous-about-parallelism

    Isso foi há três anos, e tenho certeza que outros bugs igualmente perigosos surgiram desde que escrevi isso. Não examinei e validei nenhum que foi relatado como corrigido, mas a solução alternativa é quase sempre usar MAXDOP 1.

    E tem outro que ainda está dando problema no SQL Server 2012, e que não foi corrigido no CU1:

    • https://stackoverflow.com/questions/9523213/possible-bug-with-range-option-of-window-aggregates-and-parallel-plans-in-sql-se

    • http://connect.microsoft.com/SQLServer/feedback/details/728932/parallelism-bug-with-sum-over-and-range

    A solução nesse caso é, novamente, usar MAXDOP 1.

    Existem outras questões que podem ser atribuídas ao paralelismo que não são realmente culpa do paralelismo. Por exemplo, se suas estatísticas estiverem muito erradas, você poderá observar o comportamento em que o paralelismo é empregado, mas um único thread está fazendo todo o trabalho. É o caso em que as pessoas soam os alarmes porque estão vendo CXPACKETesperas e acham que o paralelismo está causando o problema, quando na verdade é a vítima. A reação instintiva nesses casos é tipicamente empregar MAXDOPem vez de investigar mais e resolver o problema de estatísticas ou outra causa raiz.

    Não está claro o que você quer dizer com "muito paralelismo" ou se seus impasses e outros problemas estão de fato relacionados de alguma forma ao paralelismo. Em geral, concordo que o paralelismo é uma coisa positiva, mas é importante estar ciente dos possíveis problemas acima e também ser capaz de discernir o sintoma da causa.

    • 7
  2. Eric Higgins
    2012-04-21T13:38:03+08:002012-04-21T13:38:03+08:00

    Ser capaz de comprometer mais núcleos de CPU para o processamento de uma solicitação é bom, até que o tempo necessário para remontar os resultados exceda o ganho obtido com a distribuição da carga de trabalho.

    Verifique se você tem um tempo de espera CXPACKET alto. Se você não fizer isso, então não se preocupe. Esse artigo fornece algumas coisas para tentar se você quiser obter mais compreensão sobre o assunto.

    • 3

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve