Нюансы выноса временных таблиц PostgreSQL в RAM для 1С
При выносе в RAM выделяется определенное количество ОЗУ, которое будет использоваться для временных таблиц. Но что произойдет, если выделенного места не хватит?
В данном случае сеанс, который пытался это сделать, получит ошибку вида:
Все другие сеансы, которые в этот же момент, хотели поместить данные во временные таблицы получат аналогичную ошибку и аварийно завершатся.
Но место в каталоге временных таблиц данные сеансы, которые завершились аварийно, удерживать не будут, поэтому все остальные сеансы, которые в момент проблемы не пытались поместить временную таблицу в оперативную память, продолжат успешно работать и их последующие попытки поместить данные во временные таблицы завершатся успешно.
Что будет с уже созданными временными таблицами в случае аварийного завершения работы PostgreSQL? 
Тестовый сценарий:
- 20 сеансов в цикле постоянно создают временные таблицы
- Один из процессов постгреса завершается путем выполнения команды kill -9 PID
- Ребут сервера shutdown -r now
После перезагрузки в логах постгреса проблем нет, вход в базы 1С и операции в базе выполняются успешно.
Автовакуум удаляет безхозные временные таблицы, которые остались в результате аварийного завершения:
Заключение
Каталог временных таблиц можно выносить в RAM, только следует настроить мониторинг, чтобы своевременно реагировать на возможные проблемы нехватки места.