Зависит ли производительность INNER JOIN от порядка таблиц?
вопрос внезапно пришел мне на ум, когда я настраивал одну хранимую процедуру. Позвольте спросить ... --3-->
у меня есть две таблицы table1 и table2. таблица1 содержит огромные сведения и table2 содержит меньше данных. Есть ли разница в производительности между этими двумя запросами (я меняю порядок таблиц)?
запроса query1:
SELECT t1.col1, t2.col2
FROM table1 t1
INNER JOIN table2 t2
ON t1.col1=t2.col2
Query2:
SELECT t1.col1, t2.col2
FROM table2 t2
INNER JOIN table1 t1
ON t1.col1=t2.col2
мы используем Microsoft SQL server 2005.
1 ответов
псевдонимы и порядок таблиц в соединении (при условии, что это INNER JOIN
) не влияет на конечный результат и, следовательно, не влияет на производительность, так как заказ заменяется (при необходимости) при выполнении запроса.
вы можете прочитать еще несколько основных понятий о реляционной алгебре здесь: http://en.wikipedia.org/wiki/Relational_algebra#Joins_and_join-like_operators