Plusieurs Jointures dans Teradata SQL - plus Rapide d'Utiliser des sous-requêtes ou des Tables temporaires?

Je suis en train d'écrire de SQL pour Teradata. J'ai besoin d'utiliser des jointures pour la connexion à des données provenant de plusieurs tables. Il est généralement plus rapide à utiliser des sous-requêtes, ou de créer des tables temporaires et ajouter des colonnes de jointure à la fois? Je suis en train de le tester moi-même, mais le trafic réseau, il est difficile pour moi de dire qui est plus rapide.

Exemple:

SELECT a.ID, a.Date, b.Gender, c.Age
FROM mainTable AS a
LEFT JOIN (subquery 1) AS b ON b.ID = a.ID
LEFT JOIN (subquery 2) AS c ON c.ID = a.ID

Ou je pourrais...

Exemple B:

CREATE TABLE a AS (
 SELECT mainTable.ID, mainTable.Date, sq.Gender
 FROM mainTable
 LEFT JOIN (subquery 1) AS sq ON sq.id = mainTable.ID
)
CREATE TABLE b AS (
  SELECT a.ID, a.Date, a.Gender, sq.Age
  FROM a
  LEFT JOIN (subquery 2) AS sq ON sq.id = a.ID
)

En supposant que je nettoie tout suivi par la suite, est une approche préférable à l'autre? Encore une fois, je voudrais juste tester moi-même, mais le trafic réseau est gentil de me gâcher.

EDIT: La table principale a n'importe où à partir de 100k à 5 millions de lignes. Les sous-requêtes de retour une relation 1:1 à la table principale, l'IDs, mais nécessitent des clauses where pour filtrer les dates. La sous-requête SQL n'est pas trivial, je suppose que c'est ce que j'essaie de transmettre.

La quantité de trafic réseau dans les deux cas, resterait le même, je suppose, puisque vous êtes juste de filtrage du résultat avec votre intérieur requêtes.

OriginalL'auteur Jeffrey Kramer | 2013-08-14