«Pushing selection» down - одна из основных стратегий оптимизации, которая может уменьшить количество операций ввода-вывода, которые необходимо выполнить.
Например, выбор, содержащий предикат sargable, если он подтолкнут к соединению, эффективно уменьшит количество операций ввода-вывода, уменьшив количество кортежей во внешнем отношении (для вложенных Loops Join требуется |R|+|R|*|Q|
I/O).
Основной недостаток отталкивания выборки - это ситуация, при которой существующие индексы по исходному отношению не могут быть использованы. Решение о том, следует ли нажать или нет, выполняется в сочетании с выбором метода объединения.
Аналогичным образом вы можете «нажимать» проекцию вниз, если она сохраняет атрибуты, необходимые для соединения.
Что такое работа PROJECT? Какой SQL-продукт вы используете? –
@AndriyM: 'PROJECT' - это реляционное выражение для взятия подмножества столбцов ;; 'RESTRICT' принимает подмножество строк. См. Например: http://www.cs.scranton.edu/~mccloske/courses/cmps340/rel_alg_intro_lec.html – wildplasser
Оптимизация запросов - сложный бизнес, зависящий от многих факторов. Если использование проекта/выбора/ограничения препятствует использованию индексов, то «да», применяя их вначале, может привести к ухудшению производительности. –