Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Dicas de JOIN do SQL SERVER 2008


Porque isso rouba do otimizador a oportunidade de considerar outros métodos que podem ser mais eficientes.

Quando a distribuição de dados (na qual o otimizador toma suas decisões) é severamente distorcida e as estatísticas não são capazes de representá-la corretamente.

São algoritmos diferentes.

  1. LOOP é loops aninhados:para cada registro da tabela externa, a tabela interna é pesquisada por correspondências (usando o índice de disponível). Mais rápido quando apenas uma pequena parte dos registros de ambas as tabelas satisfazem o JOIN e o WHERE condições.

  2. MERGE classifica ambas as tabelas são percorridas na ordem de classificação, ignorando os registros não correspondentes. Mais rápido para o FULL JOIN s e quando ambos os conjuntos de registros já estão classificados (de operações de classificação anteriores ou quando o caminho de acesso do índice é usado)

  3. HASH construir uma tabela de hash no armazenamento temporário (memória ou tempdb ) de uma das tabelas e pesquisa cada registro da outra. Mais rápido se a grande parte dos registros de qualquer tabela corresponder a WHERE e JOIN doença.