как исправить ora-01652

Мне нужно запустить запрос на создание таблицы, каждый раз, когда это занимает более полутора часов, а затем отображается сообщение об ошибке, например ora_01652: невозможно расширить временный сегмент на 8192 в табличном пространстве xyz, как я могу это исправить?


person Cindy    schedule 16.10.2013    source источник
comment
также проверьте свой оператор ctas, чтобы убедиться, что соединения верны (вы действительно рассчитываете создать огромную таблицу? Если да, вам следует заранее поработать с вашими базами данных). Кроме того, я предполагаю, что вы не пытаетесь поместить это в табличное пространство USERS или по умолчанию.   -  person tbone    schedule 16.10.2013


Ответы (2)


Во-первых, вы можете alter session set resumable_timeout = 86400. Это приостановит выполнение запроса вместо того, чтобы позволить ему просто потерпеть неудачу, давая вам время посмотреть на ситуацию, пока это происходит. Как упомянул @davek, вам может понадобиться где-то добавить место. И вам нужно выяснить, почему он использует так много места.

Временное табличное пространство используется в основном для сортировки и хэширования данных. Например, если вы сортируете или хэшируете таблицу размером 50 ГБ, вам потребуется около 50 ГБ временного табличного пространства. Как предположил @tbone, у действительно плохого запроса или плана выполнения может быть перекрестное соединение, которое пытается создать массивный набор результатов, который не поместится ни на одном диске. Убедитесь, что ваши соединения верны, а план выполнения выглядит разумным. Некоторые вещи, которые нужно искать, это MERGE JOIN (CARTESIAN) или, возможно, есть некоторые фильтры, которые применяются после хэширования или сортировки, а не до. Повторный сбор статистики обычно является хорошим первым шагом, если план плохой.

Если запрос и план в порядке, но вам просто не хватает места, вам нужно как-то разбить запрос. Это может быть несколько вставок вместо одной CTAS. Разбиение запросов обычно является плохой идеей, но необходимо в некоторых редких случаях, когда ресурсы ограничены. Или вы можете рассмотреть возможность использования соединения по разделам чтобы уменьшить требуемое пространство.

person Jon Heller    schedule 16.10.2013

Либо ваш диск заполнен (или почти заполнен), либо у вас нет разрешения на расширение соответствующего табличного пространства.

person davek    schedule 16.10.2013