Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4404
Swa111,

log_statement ddl включить и дальше по логу базы считать.
или pg_stat_statements track_utility включить и с его помощью.
2 июн 20, 22:18    [22144548]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Юрий Зиновьев
Member

Откуда:
Сообщений: 2
Случайно набрёл на эту тему. Работаем с MS-SQL. Часто применяем такой подход:
Шаг 1. Во временные таблицы набиваем сырые данные (иногда их много).
Шаг 2. При необходимости с этими таблицами проводим какую-то обработку (как минимум синхронизацию ссылок между мастер-детейл).
Шаг 3. Отправляем запрос в котором: открываем транзакцию, переливаем данные в основные таблицы, закрываем транзакцию.

Т.к. из-за импортозамещения придется поддерживать и PG, то теперь в размышлениях...
Можно конечно под эти цели завести постоянные и внутри "разводить" по сессиями, но не хотелось бы.

Подскажите пожалуйста, где посмотреть какие у PG проблемы с временными таблицами. В гугле не банили и честно пытался поискать.
19 ноя 20, 07:56    [22235067]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4404
Юрий Зиновьев
Случайно набрёл на эту тему. Работаем с MS-SQL. Часто применяем такой подход:
Шаг 1. Во временные таблицы набиваем сырые данные (иногда их много).
Шаг 2. При необходимости с этими таблицами проводим какую-то обработку (как минимум синхронизацию ссылок между мастер-детейл).
Шаг 3. Отправляем запрос в котором: открываем транзакцию, переливаем данные в основные таблицы, закрываем транзакцию.

Т.к. из-за импортозамещения придется поддерживать и PG, то теперь в размышлениях...
Можно конечно под эти цели завести постоянные и внутри "разводить" по сессиями, но не хотелось бы.

Подскажите пожалуйста, где посмотреть какие у PG проблемы с временными таблицами. В гугле не банили и честно пытался поискать.


Для такой задачи и в pg временные таблицы вполне нормально подходят и используются.
Только нало в pg не забывать analyze временной таблицы делать после шага 1 (и если вы там меняли очень много данных внутри).

Проблемы начинаются когда через временные таблицы начинают OLTP-like задачи решать создавая и удаляя их сотнями в секунду (и используя фактически как замену переменным уровня сессии).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
19 ноя 20, 09:03    [22235085]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Юрий Зиновьев
Member

Откуда:
Сообщений: 2
Maxim Boguk, большое спасибо!
19 ноя 20, 11:18    [22235161]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51804
Юрий Зиновьев
Работаем с MS-SQL. Часто применяем такой подход

А какой баг в MS SQL вы обходите таким кривым костылём?
19 ноя 20, 14:51    [22235384]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4404
Dimitry Sibiryakov
Юрий Зиновьев
Работаем с MS-SQL. Часто применяем такой подход

А какой баг в MS SQL вы обходите таким кривым костылём?


а почему сразу баг то?
загрузка сырых данных сначала в временную таблицу это стандартная РЕКОМЕНДУЕМАЯ практика при ETL задачах на любой базе (что оракл что pg что mssql) ,
там чистка-преобразование-валидация и уже после - загрузка чистых данных в постоянные таблицы (там вполне 10% может остаться от того что залили).



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Сообщение было отредактировано: 19 ноя 20, 17:18
19 ноя 20, 17:21    [22235553]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1274
тоже актуально PostGres в Azure
И тоже в мс-скл часто юзаел #Tmp таблицы
чаще всего когда сложная логика - то в SP разбивал логику на куски
#tmp1 , #Tmp1 , #tmp3 ...

(а иногда и глобальные ## чтобы видеть можно было ) - но это больше для ETL
чтобы видеть где и когда что упало и быстро догрзуить кусок

вопрос временные таблицы в Azure
не имеют никаких отличий от станд. постгреса ?

ps а вобще кто-то с PostGres Azure работает ?
19 ноя 20, 18:07    [22235594]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51804
Maxim Boguk
загрузка сырых данных сначала в временную таблицу это стандартная РЕКОМЕНДУЕМАЯ практика при ETL задачах на любой базе (что оракл что pg что mssql) ,
там чистка-преобразование-валидация и уже после - загрузка чистых данных в постоянные таблицы (там вполне 10% может остаться от того что залили).

Ну, у ETL-то преобразование это T, которое стоит ещё до до L. Чистка и валидация это да, ништяк применение при загрузке данных извне. Но у меня почему-то создалось впечатление, что ТС грузит во временные таблицы данные из самой базы.
20 ноя 20, 14:43    [22236063]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / PostgreSQL Ответить