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

Откуда:
Сообщений: 88
Всем привет!
Скажите, такая схема создания временной таблицы в PostgreSQL 10 имеет какие-то конкретные недостатки?

Create TEMP TABLE table_name as
select * from ...

Так код получается компактнее, чем сначала создавать таблицу, а потом делать insert в нее. Но есть опасения, что могут быть скрытые недостатки такого метода (какие-то блокировки в случае тяжелого select, на основе которого строится таблица и т.д.).

Спасибо за ваше мнение!
26 фев 18, 16:56    [21219549]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
Bosyak,

хороший тон в пж -- избегать создания времянок.

по крайней мере на сегодняшний день

конечно всё по возможности, если уже никак -- то делайте.
26 фев 18, 17:41    [21219692]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Bosyak
Member

Откуда:
Сообщений: 88
В моем случае без времянок вообще никак, и их много. Поэтому решил разобраться детальнее.
26 фев 18, 17:44    [21219702]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
Bosyak
В моем случае без времянок вообще никак, и их много. Поэтому решил разобраться детальнее.


вероятно это неверная проекция старого опыта на новые обстоятельства.
26 фев 18, 17:57    [21219750]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
982183
Member

Откуда: VL
Сообщений: 3374
Если только ради компактности кода, то не стоит.
Если есть другие цели - озвучьте.

"старый опыт" действительно сильно на это влияет.
27 фев 18, 06:52    [21220565]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Bosyak
Member

Откуда:
Сообщений: 88
То, что надо избегать времянок я услышал.
Скорость создания и заполнения таблиц примерно одинаковая
(create temp table -> insert into select и create temp table as select)

И все-таки какие проблемы меня ждут, если массово генерить времянки через create temp table as select? Так же интересно мнение админов PostgreSQL на этот счет.
27 фев 18, 11:52    [21221268]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
Bosyak,

Вы пытаетесь навязать нам свое видение решения какой-то, только вам известной, задачи. Может имеет смысл описать задачу полностью, чтобы можно было полноценно говорить о всех плюсах и минусах применяемых подходов?
27 фев 18, 11:56    [21221282]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Bosyak
Member

Откуда:
Сообщений: 88
Щукина Анна
Bosyak,

Вы пытаетесь навязать нам свое видение решения какой-то, только вам известной, задачи. Может имеет смысл описать задачу полностью, чтобы можно было полноценно говорить о всех плюсах и минусах применяемых подходов?


Не пытаюсь, вам показалось) меня просто интересует технический ньанс. Из любопытства, если вам так угодно.
27 фев 18, 12:19    [21221386]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
Bosyak,

можете и дальше упорствовать.... Но вы даже не рассказали - что после всех ваших манипуляций становиться с вашими временными таблицами? они удаляются? остаются в базе и используются повторно? пока ваш вопрос сродни такому: "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит"(с)
27 фев 18, 13:05    [21221616]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
Bosyak,
да делайте как получится, раз не хотите как надо

проблемы вас сами найдут и расскажут как правильно

просто люди, любящие плодить времянки в пж долго не живут -- некому вам рассказать, как класть грабли лучше


возможно вы станете главным гуру по времянкам , дерзайте
27 фев 18, 18:07    [21223080]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3795
qwwq
Bosyak,
да делайте как получится, раз не хотите как надо

проблемы вас сами найдут и расскажут как правильно

просто люди, любящие плодить времянки в пж долго не живут -- некому вам рассказать, как класть грабли лучше


возможно вы станете главным гуру по времянкам , дерзайте


ёмко

зы. меня тоже касается, хочу избавиться от темп таблиц, а в некоторых случаях не вижу как.
27 фев 18, 18:32    [21223144]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Skoffer
Member

Откуда:
Сообщений: 32
Так а расскажите в чем конкретно проблема с временными таблицами?
27 фев 18, 19:49    [21223306]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
Skoffer
Так а расскажите в чем конкретно проблема с временными таблицами?

да какие проблемы ?

конкретно проблема с любителями всё делать через времянки.
т.ч. бить их надо, пока маленькие.

а так-то проблем нет.

хотя на стендбае отчеты не будут считаться, если кто на времянках настрогал.

но так-то проблем нет -- есть бывшие мс-скуельщики, которые времянки лепят не думая. вот их всех прикопать в садике под грушей, и можно околачивать.

и да, тут поиск работает, если чо.


зы я сам во времянки счёт 1-с процки перетаскивал -- там вообще была песня -- прямо в живой табличке итерировали в пяток проходов себестоимости на тыщщи записей. в длинной транзе. других рукояток из 1С-кода попросту не торчало. пришлось вынести порнографию во времянку. или вылезать за рамки 1С--кода, что заведомо плохо -- я уйду а код останется.
27 фев 18, 21:04    [21223401]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 1212
Skoffer,

Зачем гнать данные во временную таблицу, может всё обработать одним запросом?

Приведите конкретный пример задачи, которую вы решаете через временные таблиц — разговор будет более предметным.
27 фев 18, 21:40    [21223438]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
982183
Member

Откуда: VL
Сообщений: 3374
vyegorov
Зачем гнать данные во временную таблицу, может всё обработать одним запросом?
.

Ну например, когда надо сохранить/задокументировать промежуточный результат.
28 фев 18, 05:13    [21223758]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
982183
vyegorov
Зачем гнать данные во временную таблицу, может всё обработать одним запросом?
.

Ну например, когда надо сохранить/задокументировать промежуточный результат.

с этого момента попа дробнее пжалста.

задокументировать во времянке ? орригинально
28 фев 18, 08:06    [21223808]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
982183
Member

Откуда: VL
Сообщений: 3374
А как иначе подтвердить тот многоступенчатый результат, который получился, если возникает такая задача?
Ночью производится некий расчет.
Некие промежуточные результаты сохраняются во временной таблице с уникальным именем.
По мере желания - чистят.
По необходимости - смотрят.
28 фев 18, 14:55    [21225123]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3795
982183
А как иначе подтвердить тот многоступенчатый результат, который получился, если возникает такая задача?
Ночью производится некий расчет.
Некие промежуточные результаты сохраняются во временной таблице с уникальным именем.
По мере желания - чистят.
По необходимости - смотрят
.


если успевают и таблица еще жива
28 фев 18, 15:16    [21225202]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
982183
А как иначе подтвердить тот многоступенчатый результат, который получился, если возникает такая задача?
Ночью производится некий расчет.
Некие промежуточные результаты сохраняются во временной таблице с уникальным именем.
По мере желания - чистят.
По необходимости - смотрят.
Вы уверены, что понимаете предназначение и механику временных таблиц?

 Temporary tables are automatically dropped at the end of a session, or optionally at the end of the current transaction.
28 фев 18, 15:20    [21225223]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
MadeOfGlass
Member

Откуда: BY, Minsk
Сообщений: 199
982183
А как иначе подтвердить тот многоступенчатый результат, который получился, если возникает такая задача?
Ночью производится некий расчет.
Некие промежуточные результаты сохраняются во временной таблице с уникальным именем.
По мере желания - чистят.
По необходимости - смотрят.


кхм, а обычная таблица вместо временной в данной ситуации чем не угодила?
28 фев 18, 15:22    [21225243]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
982183,

это какая-то долгоиграющая времянка.
таких тут не делают.

наверное вы анлоггед тейблы имеете в виду, а не temporary.
28 фев 18, 16:19    [21225465]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
982183
Member

Откуда: VL
Сообщений: 3374
неверное.
1 мар 18, 02:19    [21226858]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
982183
Member

Откуда: VL
Сообщений: 3374
Был вопрос "Зачем гнать данные во временную таблицу, может всё обработать одним запросом?"
Соответственно ответ заключался в том, что иногда это нужно.
(Учитывался опыт работы на другой СУБД)
Другое дело, что в PostgreSQL несомненно это надо делать не через механизм временных таблиц.
1 мар 18, 04:27    [21226898]     Ответить | Цитировать Сообщить модератору
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
qwwq
Member

Откуда:
Сообщений: 2894
982183
Был вопрос "Зачем гнать данные во временную таблицу, может всё обработать одним запросом?"
Соответственно ответ заключался в том, что иногда это нужно.
(Учитывался опыт работы на другой СУБД)
Другое дело, что в PostgreSQL несомненно это надо делать не через механизм временных таблиц.

ну нагребите ещё слов в кучку, неопределенный вы наш, авось смысл где-то не-то найдётся. не-то потеряется


повторяю вопрос применительно к "промежуточным результатам":

что мешает сохранить по мере "одного запроса" кучу уровней детализации (with ... insert 1...insert N) / итераций(with recursive), несомненно "не через механизм" , "иногда", когда "это нужно"
1 мар 18, 11:57    [21227857]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Хороший тон создания временных таблиц в PostgreSQL  [new]
Swa111
Member

Откуда:
Сообщений: 214
Bosyak,

Как минимум есть одна большая проблема с временными таблицами, это разрастание pg_class и pg_attribute. С длинными транзакциями pg_attribute стала занимать 4 Гб вместо 40Мб. Что субъективно чревато более долгой подготовкой запросов к выполнению.

Можете подсказать как определить какая временная таблица создается чаще всего? Что бы можно было начать работы по выпиливанию.
2 июн 20, 22:14    [22144546]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / PostgreSQL Ответить