Использование транзитивности

Если во фразе WHERE общий столбец участвует в двух условиях, то оптимизатор может иногда вывести из них третье условие, используя принцип транзитивности.

Например,

A.X = B.X AND A.X = C

заменяются на

A.X = C AND B.X = C

Принцип транзитивности применим ко всем операторам сравнения, т.е. =, !=, ^=, <  >, < ,  >, < =,  >=.

Оптимизатор может заменять лишь такие условия, которые связывают столбцы с константными выражениями, но не с другими столбцами.

Например, пусть фраза WHERE содержит два условия следующего вида:

WHERE A.X = B.Y AND A.X = C.X

В этом случае принцип транзитивности не используется, т.е. оптимизатор не сформирует фразу WHERE со следующим условием:

B.Y = C.X