Ошибка SQL при добавлении ограничения в таблицу, ORA-01652 - невозможно расширить временной сегмент - PullRequest
2 голосов
/ 23 марта 2012

У меня есть эта таблица с миллионами строк, которые я загрузил с помощью подсказки append.

Теперь я снова включаю ограничения, получаю следующее:

2012-03-23 ​​01: 08: 53,065 ОШИБКА [SQL] [основная]: Error in executing SQL:

alter table summarydata add constraint table_pk primary key (a, b, c, d, e, f)

java.sql.SQLException: ORA-30032: the suspended (resumable) statement has timed out ORA-01652: unable to extend temp segment by 128 in tablespace MY_TEMP_TABLESPACE

Есть ли лучшие практики, чтобы избежать этого? Я добавляю еще несколько файлов данных, но почему это может быть проблемой?

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Ошибка связана с табличным пространством temporay , а не с табличным пространством данных, которое содержит таблицу и / или первичный ключ. Вам нужно увеличить размер MY_TEMP_TABLESPACE, чтобы у него было достаточно места для сравнения, как указано @Lamak.

Если вы не знаете, сколько места требуется, вам понадобится включить AUTOEXTEND, как сказал @DCookie, и если он уже включен (для временного значения, а не для данных, табличного пространства!), Тогда проверьте MAXSIZE установка и увеличение при необходимости. На некоторых платформах максимальный размер файла данных (или для временного табличного пространства, возможно, временного) ограничен, поэтому вам может потребоваться добавить дополнительные временные файлы.

Если это одноразовая задача, и вы не хотите, чтобы temp оставался большим, вы можете уменьшить ее впоследствии, но у вас также есть возможность: создать новое, большое временное табличное пространство; измените пользователя, чтобы он использовал его вместо этого; построить ограничение; изменить пользователя обратно в исходную временную область; отбросьте новое, большое временное табличное пространство.

0 голосов
/ 23 марта 2012

Любая причина, по которой вы не можете включить AUTOEXTEND для табличного пространства?

...