
Anton
15.11.2016
07:29:48
только таблички, емнип

Aleksandr
15.11.2016
07:46:37
Срочно в эфир: https://www.postgresql.org/about/news/1717/

Google

Aleksandr
15.11.2016
07:46:47
Amazon RDS now supports PostgreSQL 9.6.1

AbiGeuS
15.11.2016
07:55:40

Darafei
15.11.2016
07:57:12
а нельзя сделать такое view, которое дёрнет функцию?

Евгений
15.11.2016
07:57:28

Darafei
15.11.2016
07:57:58
да ладно, на RDS по умолчанию work_mem в 4 mb
умеешь крутить work_mem на rds и знаешь, что это надо делать - нужный dba

AbiGeuS
15.11.2016
08:02:15

Darafei
15.11.2016
08:02:38
insert into таблица, select from view
всё в транзакции, таблицу договориться держать пустой вне транзакций

Maxim
15.11.2016
08:06:26

Николай
15.11.2016
08:24:53
Всем привет. Решил тут познакомится с постгресом и сделать на нем не большой проектик для себя любимого. Но вот расстройство. Постаивл я значит postgresql 9.6 + pgadmin 4 Создал в нем базу, таблицу, столбцы. Патюсь через query tool отправить пару insert. А вместо результата получаю "Not connected to the server or the connection to the server has been closed." При этом тут же делаю селект к таблице - и все нормльно. пробовал гуглить - и ничего путного не нашел. Подскажите в чем может быть проблема?

Alex
15.11.2016
08:25:31
В пгадмин4

Николай
15.11.2016
08:26:05
пичаль. а как починить?

Google

AbiGeuS
15.11.2016
08:27:25
всё в транзакции, таблицу договориться держать пустой вне транзакций
Это конечно мог бы быть вариант, но такой сервис может использовать одновременно много людей. Можно конечно поизвращаться с разбиением данных в таблице по пользователям. Но может есть более нативный вариант. Сильно сложные вещи городить не хотелось бы по двум причинам: вызываться это все должно встроенными мезанизмами 1с(а там уже можно словить кучу ограничений); не хотелось бы быть сильно прикладываться к реализации оракловой. Там другие люди за это отвечают и хотелось бы просто использовать их функцию как черный ящик. Без дополнительных телодвижений.

Vadim
15.11.2016
08:32:00

Николай
15.11.2016
08:32:31
так все плохо?

Vadim
15.11.2016
08:32:59
Пока что да

Николай
15.11.2016
08:33:22
ок. пойду качать третий.
а внешне такой симпотичный был...

Darafei
15.11.2016
08:34:08
а багу в трекер завели?
а то вот это "оно нехорошее, пользуйтесь другим" без попытки пропатчить / сообщить о проблеме, обычно приводит к загниванию экосистемы

Vadim
15.11.2016
08:36:25
https://www.bigsql.org/pgadmin3

Николай
15.11.2016
08:36:55
Какие запросы проходят, а какие-то нет
причем ни какой магии написать-то не успел.

Darafei
15.11.2016
08:37:23
странная, да

Николай
15.11.2016
08:37:26
обычный инсуерт в одну табличку.
поэтому и грешил больше на свои кривые руки, чем на тулзу.

Vadim
15.11.2016
09:43:53


Bob
15.11.2016
10:21:36
Коллеги, помогите найти виновника торжества.
Есть таблица, в которой 9432 строки. Обычный размер с индексами около 7Мб.
Таблица распухает на глазах. Раньше помогал vacuum full, но сейчас (возможно изза нового релиза) vacuum full ее не может почистить и не могу найти кто держит строки:
postgres=# SELECT relation::regclass, * FROM pg_locks where relation::regclass::text like '%mobileitm%';
relation | locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath
----------+----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+----------
(0 rows)
postgres=# vacuum full verbose mobileitm;
INFO: vacuuming "gkmobile.as_itm"
INFO: "mobileitm": found 0 removable, 914904 nonremovable row versions in 62482 pages
DETAIL: 905472 dead row versions cannot be removed yet.
CPU 1.70s/10.58u sec elapsed 25.11 sec.
VACUUM
postgres=# select pg_size_pretty( pg_total_relation_size('mobileitm') );
pg_size_pretty
----------------
686 MB
(1 row)
Как найти кто держит?


Vadim
15.11.2016
10:22:20
Репликация есть?

Bob
15.11.2016
10:22:50
Нет

Google

Darafei
15.11.2016
10:23:00
сделай ей cluster по какому-нибудь индексу, если её можно полочить на некоторое время

Bob
15.11.2016
10:29:34
Сделаю, но т.к. ее размер вырос почти в 100 раз придётся ночью. Есть ли способ понять/узнать кто держит?? В pg_locks ничего нет. Чекпоинты каждые 10 минут , не думаю что это из-за wal.. При этом рестарт приложения без рестарта субд помогает и vacuum full проходит.

Айтуар
15.11.2016
10:30:34
Idle connect

Bob
15.11.2016
10:33:09
Idle in transaction есть (появились с последним релизом), но коннекции к другой схеме(той же бд). Разве в pg_locks их быть не должно?

Айтуар
15.11.2016
10:36:03
Нет

Bob
15.11.2016
10:42:46
Т.e. все idle соединения держат какие то строк в таблице? Какой корректный способ поведения для пула, чтобы предотвратить разбухание таблиц и иметь возможность выполнять vacuum full? Каждый раз полностью закрывать соединение?

Sergey
15.11.2016
10:46:53
Закрывать транзакции
Держат только idle in transaction

Bob
15.11.2016
10:49:20
Так, но те запросы которые висят в idle in transaction они к другой схеме и то что они лочат таблицы видно в pg_locks. Этой же таблицы нет.

Айтуар
15.11.2016
10:49:38

Bob
15.11.2016
10:51:26
Нет, 2 java приложения. Какой фреймвор для пула используется с ходу не скажу...

Sergey
15.11.2016
10:51:39
А это не механизм явных локов, а MVCC

Bob
15.11.2016
10:54:16
Я понимаю что это mvcc, но для него же все равно нужен наверное лок... иначе как vacuum понимает, что эти строки еще нужны.

dmitriy
15.11.2016
10:54:27

Bob
15.11.2016
10:55:20
Спасибо, забыл про prepared, а это может быть...

Jonh
15.11.2016
11:57:53
Круто, в арч завезли 9.6, а постгис для него - нет

Darafei
15.11.2016
12:06:16
ну вы бы ещё более странный дистр нашли
честно говоря, не видел опций "сервер на арче" нигде

Alex
15.11.2016
12:09:59
ну есть любители
всё апдейтить и патчить

Google

Darafei
15.11.2016
12:12:15
апдейтить и патчить - арч не нужен

Andrey
15.11.2016
12:51:13

Alex
15.11.2016
12:54:46
Для дома тоже так себе... бывает что приходиться ручками после обновления допинывать, нафиг такое счастье.

Slava
15.11.2016
12:57:53

Arsen
15.11.2016
13:01:02
@cantrell а 2.3 не совместимо с 9.6?

Darafei
15.11.2016
13:01:17
бинарно? :)

Admin
ERROR: S client not available

Darafei
15.11.2016
13:01:31
2.3 от 2.5 - вряд ли :)

Jonh
15.11.2016
13:11:42
почему арч?
На десктопе его гоняю, разрабатываю в нем же

Slava
15.11.2016
14:03:11
Ребят, у кого-нибудь был случай с загрузкой логов в pg
некоторых полей иногда может не быть
и он не ковертирует их в null почему-то
не консистентно получается

Sergey
15.11.2016
14:09:23
Конвертирует в zero-length string?

Darafei
15.11.2016
14:10:16
null '' указан?

Maxim
15.11.2016
16:59:37
коллеги, а каких тут привилегий не хватает:
staging=> alter database staging set logidze.disabled TO off;
ERROR: permission denied to set parameter "logidze.disabled"
?
пользователь, от которого запускается, является овнером базы staging

Evgeniy
15.11.2016
17:05:54
Only the database owner or a superuser can change the session defaults for a database. Certain variables cannot be set this way, or can only be set by a superuser.

Google

Evgeniy
15.11.2016
17:06:07
ну видимо твой параметр овнер не может

Maxim
15.11.2016
17:44:47
да, пришлось-таки делать суперюзером, гнать миграцию, отнимать суперюзера

Azat
16.11.2016
14:53:25
Ребят , вопрос. Для materialized view, основанной на большой таблице. Во время выполнения команды refresh - старые данные доступны во время обновления или они стразу удаляются?

Vadim
16.11.2016
14:55:04

Azat
16.11.2016
14:55:16
спасибо!

Vadim
16.11.2016
14:57:24
спасибо!
не за что. Не забудьте только добавить индекс UNIQUE

Azat
16.11.2016
14:57:54
на ключ который транслируется в MV?

Vadim
16.11.2016
14:58:37
в самой MV должен быть создан уникальный индекс

Azat
16.11.2016
15:01:04
правильно понимаю, что если в оригинальной таблице есть PK, то мы в MV должны создать unique index по этому полю (полям)?

Evgeniy
16.11.2016
15:04:05
в mv у тебя может быть любой PK или не быть
просто для concurently нужен ключик чтобы понимать уникальность

Azat
16.11.2016
15:05:50
понял

Vadim
17.11.2016
06:56:11

Azat
17.11.2016
07:00:18
Мой недосмотр. Без него.

Vadim
17.11.2016
07:01:08
с ним будет работать. Запрос должен иметь вид REFRESH MATERIALIZED VIEW CONCURRENTLY my_view.

Azat
17.11.2016
07:02:46

Vadim
17.11.2016
07:02:52
не за что