@pgsql

Страница 488 из 1062
Аггей
22.09.2017
09:13:07
Проблема в винде - служба по мнению винды должна стартануть за 30 секунд... если не успела - считается что зависла

А pg, особенно после некорректного завершения, стартует сильно дольше 30 секунд

Artem
22.09.2017
09:14:11
Sergey
22.09.2017
09:14:15
А PgPro не факт что содержит этот extension.

Google
Sergey
22.09.2017
09:14:47
Попробуйте поставить Windows версию Postgres'а от EnterpriseDB

Аггей
22.09.2017
09:15:36
Sergey
22.09.2017
09:15:54
Либо можно попробовать самому скомпилировать extension

Artem
22.09.2017
09:15:57
у венды есть шедуллер, который можно завести, и будет выполнять какой-либо скрипт после старта

Аггей
22.09.2017
09:16:21
Ааа... pg_ctl запускать шедулером... туплю

Artem
22.09.2017
09:16:43
да

Sergey
22.09.2017
09:21:37
Хорошо, попробую
Там довольно развитой инсталлер, возможно придется подумать и отметить галочками нужные компоненты.

Alexander
22.09.2017
10:34:16
Ребята, а подскажите, можно ли изменить порядок сортировки индекса для первичного ключа?

По умолчанию он ASC

Darafei
22.09.2017
10:37:04
создать unique index desc и alter table drop constraint, add constraint using index индекс_с_desc?

Denis
22.09.2017
10:39:53
а какой практический смысл указывать порядок сортировки в индексе?

Alexander
22.09.2017
10:40:18
А если я точно знаю, что буду извлекать данные с конца?

Google
Alexander
22.09.2017
10:40:45
создать unique index desc и alter table drop constraint, add constraint using index индекс_с_desc?
Да, это понятно, спасибо. А при создании таблицы есть какой-то красивый способ?

Darafei
22.09.2017
10:40:47
он может быть составной, тогда order by aaa desc, bbb asc

а для одноколоночного смысла нет

есть же index scan backwards

Denis
22.09.2017
10:41:18
он может быть составной, тогда order by aaa desc, bbb asc
да, в таком варианте нет, я про одноколоночного

Darafei
22.09.2017
10:41:54
nulls first/last, но это не про primary key

Alexey
22.09.2017
10:51:48
есть же index scan backwards
не знаю, как в постгресе. но в mysql обнаружили, что index scan backwards — это медленнее, чем прямое сканирование order by ... desc индекса. подозреваю, что это связано с readahead

Alexander
22.09.2017
11:22:32
В постгресе так же. Насколько я помню, это даже в cost'ах отражено.

Alexey
22.09.2017
11:36:31
Почему в доке пишут что pl/python включен в поставку, хотя его отдельно доставлять надо?

Igor
22.09.2017
11:38:22
да вроде не пишут > Users of binary packages might find PL/Python in a separate subpackage. у меня в 17.04 убунте postgresql-plpython3-9.6 из zesty-updates например

Denis
22.09.2017
11:41:53
В постгресе так же. Насколько я помню, это даже в cost'ах отражено.
а можете дать что-то почитать по этому вопросу? мне интересно... ну или на пальцах

Igor
22.09.2017
11:44:10
https://www.postgresql.org/docs/9.5/static/xplang.html
https://www.postgresql.org/docs/9.6/static/plpython.html

это если открыть chapter 43, на которую ссылаются там внизу заметка

Alexey
22.09.2017
11:45:53
То есть где- там лежит пакет, который можно установить и его же можно было в процессе поставить?

Igor
22.09.2017
11:47:05
не понял но если сервер уже поставили, то можно поставить пакет с plpython'ом, возможно, перезапустить сервак (может, конфиг надо будет поправить) и должен будет подцепиться

Alexander
22.09.2017
11:53:36
а можете дать что-то почитать по этому вопросу? мне интересно... ну или на пальцах
Проверил по коду. Неправильно я написал, в cost'ах не учитывается. Cost одинаковый при прямом и обратном scan'е. Что, кстати, не мешало бы исправить. Вообще по-моему эта тема как-то поднималась в рассылках. Можно просто по листам поискать.

Alex
22.09.2017
11:55:13
Доброго времени суток Игорь у вас с патрони не было проблем со старыми wal логами ? У меня он почемуто на мастере не стирает автоматически, конфиг патрони на тест сервере : postgresql: use_pg_rewind: true use_slots: true parameters: wal_level: hot_standby hot_standby: "on" wal_keep_segments: 8 max_wal_senders: 5 max_replication_slots: 5 wal_log_hints: "on" archive_mode: "on" archive_timeout: 1800s archive_command: mkdir -p ../wal_archive && test ! -f ../wal_archive/%f && cp %p ../wal_archive/$ recovery_conf: restore_command: cp ../wal_archive/%f %p archive_cleanup_command: pg_archivecleanup -d /var/lib/pgsql/9.6/wal_archive %r

Denis
22.09.2017
12:37:56
Проверил по коду. Неправильно я написал, в cost'ах не учитывается. Cost одинаковый при прямом и обратном scan'е. Что, кстати, не мешало бы исправить. Вообще по-моему эта тема как-то поднималась в рассылках. Можно просто по листам поискать.
я посмотрел в интернетах, вроде в 2006 году парень по имени Wu Fengguang писал, что реализовал новый readahead framework под linux, который умел определять backwards readahead. он даже писал в рассылку postgres pro - https://postgrespro.ru/list/id/20060420020853.GA4979@mail.ustc.edu.cn ... вы не знаете, оно работало и вообще сейчас используется в ядре?

Alexey
22.09.2017
13:27:15
а вот тут постгресу снова отчаянно не хватает O_DIRECT

Google
Alex
22.09.2017
13:28:17
то да O_DIRECT было бы ой как хорошо

Alexey
22.09.2017
13:30:22
или вот в mysql 8.0 оптимизатор уже умеет вычислять cost-ы исходя из того, какие части индексов уже в памяти, а какие ещё нужно будет прочитать. всё это имеет смысл опять же только с O_DIRECT

Alexander
22.09.2017
13:40:06
я посмотрел в интернетах, вроде в 2006 году парень по имени Wu Fengguang писал, что реализовал новый readahead framework под linux, который умел определять backwards readahead. он даже писал в рассылку postgres pro - https://postgrespro.ru/list/id/20060420020853.GA4979@mail.ustc.edu.cn ... вы не знаете, оно работало и вообще сейчас используется в ядре?
Навскидку таких параметров не видно в современных ядрах. Скорее всего либо эти параметры не вошли, либо вошли в сильно изменённом виде. В любом случае времени столько уже прошло, что нужно заново всё исследовать. Писали в лист pgsql-performance, это просто зеркало расслыки на сайте postgres pro.

O_DIRECT очень нужен, причём вместе с адаптивным shared_buffers, а то до крупных кастомеров не доедет...

Adikhanov
22.09.2017
14:16:35
Nikolay
22.09.2017
15:47:43
через 15 минут трансляция #RuPostgres Live #1 !!! https://www.youtube.com/watch?v=5-DJ7Mai3PY

Dmitry
22.09.2017
15:49:28
А можно как-нибудь агрегировать text поле так чтобы на выходе был json словарь значение->количество раз?

Darafei
22.09.2017
15:53:27
count, group by, json_agg

Igor
22.09.2017
16:14:15
https://stackoverflow.com/a/34680345/974317

Dmitry
22.09.2017
16:16:31
это понятно, только что-то я не пойму как мне вложенный запрос сделать

что-то типа select pkey, json_agg((select value, count(*) group by value)) from (select 'a' as pkey, 'foo' as value union all select 'a', 'bar' union all select 'a', 'bar') as tmp group by pkey; же?

получается subquery must return only one column

если обернуть в () получаю что-то, но там видно что оно даже не агрегировано по value

а, разобрался. банальный же select .. group by pkey from (select .. group by pkey, value)

Darafei
22.09.2017
16:49:03
Достаточно только внутреннего group by

А, тебе нужно много json по key?

Тогда да

Nikolay
22.09.2017
18:09:06
Запись первой онлайн-встречи #RuPostgres: https://www.youtube.com/watch?v=5-DJ7Mai3PY

Опросник для обратной связи (ответьте, пожалуйста, даже если пока не смотрели): https://docs.google.com/forms/d/e/1FAIpQLSfAKpQiAQDwTjpZwadr-STnLg84geTeltkDF_e2t3PyNM8G3Q/viewform?usp=sf_link

Quantum Harmonizer
22.09.2017
19:17:25
Накатывать миграции всегда должно быть так больно? :) insert into pages select CAST(encode(p.id, 'hex') AS uuid) as id, p.url as "urlPathComponent", p.magic as magic, p.meta_keywords as "metaKeywords", p.meta_description as "metaDescription", p.title as title, p.h1 as h1, p.head as "headMarkup", p.markup as "contentMarkup", p.before_body_end as "beforeBodyEndMarkup", p.last_modified as "lastModified" from dblink( 'dbname=old user=postgres password=...', 'select * from pages') as p( id bytea, h1 varchar, magic varchar, markup text, meta_description varchar, meta_keywords varchar, title varchar, url varchar, before_body_end text, head text, last_modified timestamp );

Google
Quantum Harmonizer
22.09.2017
19:24:38
это вообще миграция?
ну, я сливаю данные в новую БД в другом формате

Darafei
22.09.2017
19:24:44
это выглядит как переезд, а не как накатка миграции

почему не просто альтер?

Admin


Quantum Harmonizer
22.09.2017
19:25:56
почему не просто альтер?
потому что другая база

Darafei
22.09.2017
19:27:08
это странная потребность, а странное делать всегда не очень приятно

почему не дамп-рестор, а дблинк?

почему не склонировать инстанс и не смигрировать один, если это облако и записи немного?

Quantum Harmonizer
22.09.2017
19:46:36
хз :)

Айтуар
22.09.2017
21:00:58
Кто может подсказать, есть ли какая функция мониторинга триггеров которые выполняются сейчас, типа pg_stat_activity?

Victor
22.09.2017
21:17:42
pg_top?

там на клавишу C еще нажать надо

Айтуар
22.09.2017
21:31:37
pg_top?
неа не показывает

Nikolay
22.09.2017
22:23:16
Такого трейсинга нормального явно не хватает сейчас. Я обычно проставляю много raise debug в коде и когда надо диагностику, временно понижаю уровень логирования до debug

loki
23.09.2017
03:30:17
Есть шанс pgconf.Сибирь live нарулить?

Mike Chuguniy
23.09.2017
05:16:23
@Komzpa, @pasha_golub, хулиганы что попало в чЯтЕГ несут!

Yura
23.09.2017
09:50:23
Интересная статья: https://habrahabr.ru/post/338406/

Google
Yury
23.09.2017
11:42:20
Всем привет. Кто знает, почему запросс вот от сюда: https://wiki.postgresql.org/wiki/Show_database_bloat может показывать индекс как таблицу? Индекс функциональный.

Pavel
23.09.2017
12:21:09
Привет. Как-то можно в постгресе использовать темпоральные данные при обновлении/удалении/добавлении автоматически? Что есть по этой теме?

Darafei
23.09.2017
12:36:51
Что значит "автоматически использовать"?

Adikhanov
23.09.2017
12:53:21
Доброго времени суток! Может кто сталкивался, при запуске дебаггера хранимых функций операция не выполняется + её невозможно отменить.



Pavel
23.09.2017
14:15:18
Типа такого? https://github.com/arkhipov/temporal_tables или хочешь полноценный tsql2? ;)
Да о temporal_tables я уже знал. Хотелось бы получить что-то подобное в PostgreSQL получить

Без доп extension'ов

Aleksandr
23.09.2017
14:35:49
Запись первой онлайн-встречи #RuPostgres: https://www.youtube.com/watch?v=5-DJ7Mai3PY
А будет видео запись мастер-класса Ильи с PGday 2017 https://pgday.ru/ru/2017/papers/188

Alex
23.09.2017
19:15:44
on insert триггер?
Спасибо, думаю так и поступим. Другого варианта не нашёл, казалось что это моно с помощью sequence сделать

Igor
24.09.2017
13:15:55
Йоу, знатоки, прошу пояснить за следующую тему. Есть набор сущностей, все производные от абстрактной, назовем ее артефакт. Нужно настроить версионирование для сущностей (то есть фиксировать удаления, модификации, их содержание и того, кто совершил то или иное действие). На данный момент вопрос заключается в следующем: допустим я выбираю подход, при котором для старых версий выделяется отдельная таблица (как для артефакта, так и для сущностей, производных от него) с composite primary key из версии и primary key сущности/артефакта. В ней отображается тип изменения: модификация/удаление и все данные, которые присутствовали на тот момент. Насколько это вообще адекватно и что в таком случае делать при изменении связей между объектами?

Denis
24.09.2017
13:41:56
Йоу, знатоки, прошу пояснить за следующую тему. Есть набор сущностей, все производные от абстрактной, назовем ее артефакт. Нужно настроить версионирование для сущностей (то есть фиксировать удаления, модификации, их содержание и того, кто совершил то или иное действие). На данный момент вопрос заключается в следующем: допустим я выбираю подход, при котором для старых версий выделяется отдельная таблица (как для артефакта, так и для сущностей, производных от него) с composite primary key из версии и primary key сущности/артефакта. В ней отображается тип изменения: модификация/удаление и все данные, которые присутствовали на тот момент. Насколько это вообще адекватно и что в таком случае делать при изменении связей между объектами?
У меня сейчас используется в одном проекте похожее решение, только для каждой таблицы сущности есть своя таблица аудита. На текущий момент я понял, что такое разделение на таблицу сущности и таблицу аудита в моем случае бессмысленно (так как аудит стал активно использоваться наравне с актуальной версией сущности) и я сейчас делаю рефакторинг. Думаю создать для каждой сущности единую таблицу со всеми версиями (гляньте в вики «slowly changing dimentions»). Но как оно будет на практике узнаю позже

Страница 488 из 1062