Moje pytanie jest podobne do tego SQL order of operations, ale z niewielkim akcentem, więc myślę, że to sprawiedliwe pytanie.GDZIE i JOIN kolejność operacji
Używam Teradata. I mam 2 tabele: table1
, table2
.
table1
ma tylko kolumnę id
.
table2
ma następujące kolumny: id
, val
może się mylę, ale myślę, że te dwa stwierdzenia dają takie same wyniki.
komunikat 1.
SELECT table1.id, table2.val
FROM table1
INNER JOIN table2
ON table1.id = table2.id
WHERE table2.val<100
komunikat 2.
SELECT table1.id, table3.val
FROM table1
INNER JOIN (
SELECT *
FROM table2
WHERE val<100
) table3
ON table1.id=table3.id
Moje pytania to będzie optymalizator kwerendy być na tyle silny, aby
- wykonać WHERE najpierw przyłączyć później w oświadczeniu 1
- wiem, że tabela 3 nie jest rzeczywiście potrzebna w wyciągu 2
Jestem całkiem nowy w SQL, więc proszę, naucz mnie, jeśli coś nie rozumiem.
Myślę, że optymalizator zapytań wymyśliłby ten sam plan dla obu. Spróbuj uruchomić 'EXPLAIN' plan, aby zweryfikować. –