С DDL точно так же, как у вас, насколько я знаю, между ними нет никакой разницы. (Это основано на сравнении select dbms_metadata.get_ddl('TABLE', 'TABLE_NAME') from dual;
, некоторых простых тестах производительности и моем предыдущем опыте работы с этими двумя подходами.)
Но если у вас триллионы строк или байтов, то вам, вероятно, следует использовать параллелизм, и тогда будет существенная разница. Первый подход не позволяет вам создавать индекс параллельно (ORA-03001: unimplemented feature
), но второй метод делает.
Даже если вы не хотите, чтобы индекс был параллельным, вам, вероятно, следует создать его параллельно, а затем изменить его на noparallel.
Что касается двойных кавычек, они не имеют значения, когда все столбцы в верхнем регистре. Но если вы используете смешанный регистр, то это означает, что имя чувствительно к регистру, и вы всегда должны использовать кавычки для ссылки на имя. Это действительно раздражает, поэтому я обычно удаляю кавычки, чтобы предотвратить случайное создание имени с учетом регистра.
Несколько других заметок. Вы можете рассмотреть возможность использования NOLOGGING. И COMMIT;
не требуется, DDL автоматически вызывает коммит.