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...