Как и во многих нетривиальных вещах, нет простого ответа да / нет.
Первое, для тривиальных запросов (как ваш пример в вопросе), не имеет значения, какой синтаксис вы используете . Классический синтаксис еще более компактен для простых запросов.
Сначала для нетривиальных запросов (скажем, более пяти объединений) вы узнаете о преимуществах синтаксиса ANSII . Основное преимущество заключается в том, что предикаты объединения отделены и отделены от условия WHERE.
Простой пример - это полный действительный запрос в синтаксисе, предшествующем ANSII
SELECT A.a1, B.b1
FROM A, B
WHERE A.a1 = B.b1 and
A.a1 = B.b1(+);
Это внутреннее или внешнее соединение? Кроме того, если эта конструкция разбросана в предикате с 10 другими условиями соединения в предложении WHERE, ее даже очень легко неправильно прочитать.
В любом случае, было бы очень наивно предполагать, что эти две опции синтаксиса являются только синтаксическим сахаром и что результирующий план выполнения предназначен для всех запросов , любые данные и все версии Oracle идентичны .
Да, и были времена (о Oracle 10), вы должны быть осторожны. Но во времена 12 и 18 версий я не вижу причин для защиты, и я убедился, что безопасно использовать синтаксис ANSII из вышеприведенной причины лучшего обзора и читабельности.
Последнее замечание для вашего профессора: если вы занимаетесь оптимизацией ограничения WHERE для декартового произведения , вы обычно сталкиваетесь с проблемой производительности. Проведите мысленный эксперимент с декартовым произведением из четырех таблиц по 1000 строк в каждой ...