Quais são as razões pelas quais o otimizador escolhe inserir um operador de classificação no plano (para satisfazer uma agregação de fluxo ou uma junção de mesclagem, etc.) em vez de ir para correspondência de hash ou junção de hash?
Agora, vejo alguns exemplos em que obviamente comete um erro e insinuar que a consulta a tornará muito mais rápida.
Os exemplos que vi são do SQL Server 2016.
É um otimizador de consulta baseado em custo que estima o custo de um plano candidato com base nas estatísticas disponíveis. As estatísticas podem estar ausentes ou desatualizadas e, mesmo com boas estatísticas, o processo de estimativa de custos não é perfeito.
Portanto, o motivo é simplesmente que, com base nas estatísticas disponíveis, estimou que esse era o plano mais barato.