ORA-01652: Не удаётся расширить временный сегмент на N в табличном пространстве
OracleЧто это значит?
Oracle не нашёл достаточно свободного места в табличном пространстве для расширения временного (temp) сегмента. Обычно возникает при сортировках, hash join или операциях с глобальными временными таблицами.
Почему возникает?
Табличное пространство TEMP заполнено; крупные операции ORDER BY, GROUP BY, DISTINCT, hash join или создания индексов не помещаются в память PGA и сбрасываются на диск; у файлов данных отключён AUTOEXTEND или заканчивается место на диске.
Как исправить
Отслеживайте использование TEMP: SELECT * FROM v$sort_usage / v$tempseg_usage. Добавьте файл в табличное пространство TEMP или увеличьте его: ALTER TABLESPACE temp ADD TEMPFILE '...' SIZE 2G AUTOEXTEND ON. Если заполнено постоянное табличное пространство, добавьте файл данных. Сократите дисковые сортировки за счёт оптимизации запроса (подходящий индекс, больший PGA_AGGREGATE_TARGET).
Ещё по этой СУБД
- ORA-00060Обнаружена взаимоблокировка при ожидании ресурса
- ORA-01017Неверное имя пользователя/пароль; вход запрещён
- ORA-01555Snapshot too old: слишком маленький номер сегмента отката
- ORA-04031Не удаётся выделить N байт разделяемой памяти
- ORA-12154TNS: не удалось разрешить указанный connect identifier
- ORA-12514TNS: listener в данный момент не знает службу, запрошенную в connect descriptor
- ORA-00942Таблица или представление не существует