Невозможно расширить временный сегмент на 16 в табличном пространстве PSTEMP

Запрос, который дает мне эту ошибку, выполнялся в течение 6 месяцев, и он работал нормально. Сегодня почему-то выдал мне такую ​​ошибку:

Ошибка при выполнении запроса из-за ошибки SQL, код = 1652, сообщение = ORA-01652: невозможно расширить временный сегмент на 16 в табличном пространстве PSTEMP (50,380).

Я не хочу расширять файл "PSTEMP". Запрос не должен быть проблемой, поскольку я уже упоминал, что до сих пор он работал нормально.

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


person Viraldim    schedule 09.02.2017    source источник
comment
Добро пожаловать в SO. Прочтите Как задать вопрос и покажите минимальный воспроизводимый пример.   -  person OldProgrammer    schedule 09.02.2017
comment
Отсутствие (временного) места не обязательно означает, что с вашим запросом что-то не так. Но я могу в значительной степени гарантировать, что состояние базы данных сейчас отличается от того, что было 6 месяцев назад; больше данных (возможно), другое количество пользователей, другой шаблон использования и т. д. Есть хороший шанс, что просто повторное выполнение запроса снова сработает. Или не.   -  person BobC    schedule 09.02.2017


Ответы (2)


Вы можете проверить свое временное пространство с помощью

SELECT * FROM dba_temp_free_space;

но это не обязательно может быть временным, несмотря на сообщение об ошибке.

Проверьте свободное место в табличном пространстве с помощью:

select a.tablespace_name,sum(a.tots/1048576) Tot_Size,
     sum(a.sumb/1048576) Tot_Free,
     round(sum(a.sumb)*100/sum(a.tots),2) Pct_Free,
     sum(a.largest/1024) Max_Free,sum(a.chunks) Chunks_Free
     from
     (
     select tablespace_name,0 tots,sum(bytes) sumb,
     max(bytes) largest,count(*) chunks
     from dba_free_space a
     group by tablespace_name
     union
     select tablespace_name,sum(bytes) tots,0,0,0 from
      dba_data_files
     group by tablespace_name) a
     group by a.tablespace_name
order by pct_free;
person sandman    schedule 13.02.2017

Скорее всего, ваш SQL стал слишком тяжелым по мере роста базовых данных. Вы можете попробовать оптимизировать SQL или, если это не вариант, попросить администраторов баз данных увеличить табличное пространство отмены (PSTEMP).

person Andrei Nossov    schedule 28.11.2017