Limite de memória excedido
O otimizador foi forçado a parar de procurar melhores alternativas de planejamento devido à pressão da memória. O motivo disso deve ser investigado e corrigido e, em seguida, a compilação de consultas tentada novamente. O plano retornado pode muito bem não ser aquele que o otimizador selecionaria se a condição de pouca memória não existisse.
Tempo esgotado
Esse motivo é muito mal compreendido .
O otimizador de consultas visa encontrar um plano razoável rapidamente . Não realiza uma pesquisa exaustiva para encontrar o melhor plano possível. Por design, evita gastar mais tempo em otimização do que o necessário. Um desses recursos que trabalha para garantir isso é o 'tempo limite' (não uma medida de tempo).
O otimizador define um 'orçamento de exploração' com base na complexidade da consulta lógica, nas estimativas de cardinalidade e no custo estimado do plano mais barato encontrado até o momento (se houver). Consultas mais complexas com cardinalidade mais alta recebem um orçamento mais alto.
Se esse orçamento for excedido durante uma de suas fases de pesquisa, a fase será encerrada. Isso faz parte do design e da operação normal do otimizador. As consultas que precisam de mais esforço do otimizador são obtidas; aqueles que não, não.
Pense em 'Time Out' como 'Plano suficiente encontrado'.
Bom plano suficiente encontrado
Isso significa exatamente o mesmo que um motivo em branco. É simplesmente uma peculiaridade histórica que os planos com um custo abaixo de 0,909090 ... (1 / 1.1) são rotulados dessa maneira. Nada para mais cedo ou é tratado de maneira especial ou diferente dentro do código do otimizador quando esse motivo aparecer.
Além do limite de memória excedido, nenhum dos "motivos de finalização antecipada" significa muito (se é que existe alguma coisa) para ajuste de consulta ou análise de desempenho. Eu geralmente os ignoro.
Conselhos
Direcione os esforços de ajuste de consultas com base em métricas de desempenho real (tempo decorrido, uso de CPU / memória, ... o que for importante no contexto). Se uma consulta for muito lenta para o objetivo a que se destina, gaste tempo tornando-a mais rápida. Avalie o desempenho real, compare-o com a linha de base e o histórico e direcione o esforço de ajuste às variações importantes.
Armazene dados garantidos e limpos em um esquema relacional adequado, com estatísticas e índices úteis e consultas bem escritas e amigáveis ao otimizador.