Код: Выделить всё
from a in xx
join b in yy on a.someprop equals b.someprop
join c in zz on a.someprop1 equals c.someprop
where a.someprop2.Contains(strval)
Насколько я понимаю, когда запрос включает несколько таблиц, база данных сначала объединяет все таблицы, а затем применяет только предложение WHERE. Это звучит неэффективно, поскольку означает, что ненужные строки обрабатываются перед фильтрацией.
Однако я читал, что современные оптимизаторы SQL могут переупорядочивать операции — например, применяя фильтры раньше (предикатное нажатие), чтобы объединялось меньше строк, что должно быть более эффективно.
Как я могу проверить фактический порядок выполнения (например, происходит ли фильтрация до или после объединения)?
Подробнее здесь: https://stackoverflow.com/questions/798 ... fore-joins
Мобильная версия