Dando sequencia nessa linha de ‘HINTS’, vou tentar explicar de uma forma bem simplista e resumida os hints que podem ser utilizados em conjunto com os Joins.
Lembrando que a sua utilização deve ser avaliada com extremo cuidado e a melhor opção é deixar que o próprio SQL faça essa escolha.
Por experiencia própria a utilização desses hints em pouquíssimas vezes surtiu o efeito desejado.
| LOOP
- Efetivo quando uma das tabelas envolvidas no Join tiver poucos registros e a outra uma grande quantidade de registros, pois utiliza pouco I/O devido ao fato de fazer poucas comparações.
use AdventureWorks2017 select NationalIDNumber, LoginID, JobTitle, BirthDate, HireDate, Name, GroupName from HumanResources.Employee E left join HumanResources.EmployeeDepartmentHistory EDH on E.BusinessEntityID = EDH.BusinessEntityID left loop join HumanResources.Department D ON EDH.DepartmentID = D.DepartmentID
| HASH
- Hash joins são eficientes onde as tabelas envolvidas possuírem uma grande quantidade de registros, não ordenados e não indexados.
- Adequado para result sets intermediários de queries complexas, pois não são indexados pelo query optimyzer.
use AdventureWorks2017 select NationalIDNumber, LoginID, JobTitle, BirthDate, HireDate, Name, GroupName from HumanResources.Employee E left join HumanResources.EmployeeDepartmentHistory EDH on E.BusinessEntityID = EDH.BusinessEntityID left join HumanResources.Department D ON EDH.DepartmentID = D.DepartmentID OPTION ( HASH JOIN )
| MERGE
- Adequado para joins onde ambas as colunas das tabelas envolvidas estejam indexadas.
use AdventureWorks2017 select NationalIDNumber, LoginID, JobTitle, BirthDate, HireDate, Name, GroupName from HumanResources.Employee E left merge join HumanResources.EmployeeDepartmentHistory EDH on E.BusinessEntityID = EDH.BusinessEntityID left join HumanResources.Department D ON EDH.DepartmentID = D.DepartmentID
| REMOTE
- Sua utilização deve ser feita em tabelas que estão geograficamente distantes. Quando se trata de tabelas locais ele é ignorado.
- Só funciona com Inner Joins.