Добавление ненулевого столбца со значением по умолчанию - PullRequest
0 голосов
/ 05 февраля 2019

Доброе утро,

Я получил запрос на обновление схемы от нашей команды разработчиков.Они хотели добавить столбец в одну из наших таблиц, и некоторые производственные БД содержали более 7 записей в билете.

Моя версия ora 11.2.0.4, параметр совместимости также установлен на 11.2.

Столбец, который они хотели добавить, был следующим:

изменить событие таблицы add (вставлена ​​временная метка по умолчанию sys_extract_utc (systeimstamp) не ноль);

Я проверил это на небольших БД, и он работал нормально.Затем я попробовал таблицу большего размера (2 миллиарда записей), и она просто продолжала работать.

Сессия показала МНОГО физического чтения

Насколько я понимаю, с 11.2.0.4 такое добавление выполняется напрямуюпо словарю данных.(пожалуйста, исправьте меня, если я ошибаюсь).

В любом случае, для целей тестирования, я изменил вышеупомянутое утверждение и вместо вызова функции (sys_extract_utc) я ввел значение метки времени, выбрав его из двойного, так что мой запрос стал:

изменить событие таблицы add (вставленная метка времени по умолчанию '04 -FEB-19 11: 06.11.101700 PM 'не ноль);

Это запустилось в МИЛЛИСЕКОНДАХ.

Сейчася пытаюсь понять, почему этот был быстрее по сравнению с другим?это из-за вызова функции?

добавляет ли oracle что-то дополнительное, когда мы задаем динамическое значение, подобное этому, во время добавления столбцов?, может быть, я что-то пропускаю?

Оцените помощь.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...