«Это работает, но это занимает вечность!»
В этом случае навсегда означает, что таблица занимает менее трех секунд :)
Это еще не всестол, чем просто уронить стол.Есть также зависимые объекты, которые нужно отбросить - ограничения, индексы, триггеры, хранилище больших или вложенных таблиц и т. Д. Существуют представления, синонимы хранимых процедур для аннулирования.Есть гранты, которые нужно отозвать.Пространство таблицы (и ее индексов и т. Д.) Должно быть выделено.
Вся эта деятельность генерирует рекурсивный SQL, запросы, которые выбирают или обновляют словарь данных и которые могут плохо работать.Даже если мы не используем триггеры, представления, хранимые процедуры, база данных все равно должна выполнить запросы, чтобы установить их отсутствие.
В отличие от обычного SQL, мы не можем настроить рекурсивный SQL, но мы можем настроить среду так, чтобы она работала быстрее.
Я предполагаю, что это база данных разработки, в которой объекты создаются и разрываютсявниз на регулярной основе, и что вы используете 10 г или выше.
Очистите корзину.
SQL> purge recyclebin;
Сбор статистики для словаря данных (потребуются полномочия администратора БД).Они уже могут быть собраны, так как это поведение по умолчанию в 10g и 11g. Узнайте больше .
Если у вас есть словарная статистика, убедитесь, что вы используете оптимизатор на основе затрат.В идеале это должно быть установлено на уровне базы данных, но мы можем исправить это на уровне сеанса:
SQL> alter session set optimizer_mode=choose;