На днях мы немного пообщались с отдельными подписчиками в чате, привязанному к каналу (доступен в настройках канала в разделе "Посмотреть обсуждение"). Но поскольку не все на него подписаны, многие не получили уведомлений об этом. Поэтому мы решили написать собственно в канал. Тем более мы давно уже не радовали вас тут новой информацией и знаем, что вы соскучились по ней и по обсуждениям 😀
А вы помните, что временные таблицы логируются, изменения ведутся транзакционно и могут быть откачены в том числе с использованием точек сохранения?
Но транзакционная работа во временных таблицах нужна не всегда. Появилась возможность использовать опцию NOLOGGING при создании временных таблиц. В этом случае при работе с ними запись в журнал WAL вестись не будет.
Опция NOLOGGING позволяет уравнять сложность работы с хранилищем временных таблиц до уровня объектов пользовательских табличных типов. Кстати, в Соколе появилась возможность использования табличных типов данных в процедурном языке и SQL, но об этом в другом посте.
Примеры:
CREATE GLOBAL TEMPORARY TABLE tt0 (i int) ON COMMIT DELETE ROWS NOLOGGING;
CREATE GLOBAL TEMPORARY TABLE tt1 (i int) ON COMMIT PRESERVE ROWS NOLOGGING;
CREATE PRIVATE TEMPORARY TABLE #tt1 (i int) ON COMMIT preserve definition NOLOGGING;
Если используете такое, ставьте 👏.



