J'ai une table avec beaucoup de données et je dois la joindre avec d'autres grandes tables.SQL - Filtrage de grandes tables avec jointures - bonnes pratiques
Seulement une petite partie de ma table est réellement pertinente pour moi à chaque fois.
Quand est-il préférable de filtrer mes données?
Dans la clause where de SQL.
Créer une table temporaire avec les données spécifiques et alors seulement le rejoindre.
Ajouter le prédicat à la première jointure interne clause ON.
Une autre idée.
1.
Select *
From RealyBigTable
Inner Join AnotherBigTable On …
Inner Join YetAnotherBigTable On …
Where RealyBigTable.Type = ?
2.
Select *
Into #temp
From RealyBigTable
Where RealyBigTable.Type = ?
Select *
From #temp
Inner Join AnotherBigTable On …
Inner Join YetAnotherBigTable On …
3.
Select *
From RealyBigTable
Inner Join AnotherBigTable On RealyBigTable.type = ? And …
Inner Join YetAnotherBigTable On …
Une autre question: Que se passe- premier? Join
ou Where
?
OK. Mais n'est-il pas préférable de mettre les données dans une table temporaire et seulement ensuite (interne) rejoindre les différentes tables? –
@gil - voir la réponse éditée – RichardTheKiwi