Join Hints

Os hints de joins são utilizados para forçar uma otimização entre tabelas, de maneira geral o Query Optimizer seleciona o melhor plano de execução, contudo algumas vezes necessitamos de alguns artefatos específicos para tratar algum caso especial.

O SQL Server nos dá três tipos de hints para joins, são eles:

· Merge: O merge join é muito rápido quando utilizado entre colunas ordenadas, isso porque esse operador força o optimizer a comparar as tuplas em ordem da coluna “C1” para a coluna “C2”.

· Loop: O nested loop é um laço interno que é executado a cada tupla externa, procurando linhas correspondentes na tabela interna.

· Hash: muito utilizado em datawarehouses, esse join hint trabalha bem com grande quantidade de dados, uma vez que o processamento inicia com a carga dos dados na memória. O funcionamento do Hash join é similar ao merge, porém sem a necessidade de índice ou ordenação.

Abaixo segue alguns links para mais informações sobre o assunto.

http://msdn.microsoft.com/en-us/library/ms173815(v=SQL.105).aspx

http://www.mssqlcity.com/Articles/General/MergeJoins.htm

Abraço, Rodrigo

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

Deixe uma resposta