@pgsql

Страница 349 из 1062
Viktor
30.05.2017
14:57:33
В том то и проблема

Andrey
30.05.2017
14:57:36
Я подумал 2 в конце это опечатка.

Viktor
30.05.2017
14:57:49
Если бы...

Andrey
30.05.2017
14:57:59
Тогда я сути не понял.

Google
Andrey
30.05.2017
14:58:16
Что за приоритет?

Viktor
30.05.2017
14:59:20
Ну самый высокий это 1 дальше - ниже т.е нужно так отсортировать чтобы вверху оказались все записи у которых приоритет выше

И при этом чтобы было отсортировано и по первому столбцу

Приоритет это просто название столбца в моем случае

2 2 оказалось внизу потому что у 2 в первом столбце нет 1 во втором, т.е приоритет ниже остальных

Aleksey
30.05.2017
15:03:16
тогда 3 2 в самом низу должно быть, после 2 2, разве нет?

Viktor
30.05.2017
15:05:27
Нет у 3 есть 1, а у 2 нет

Т.е приоритет 2 ниже и должно быть ниже записи с 3 в первом столбце

Aleksey
30.05.2017
15:07:21
а, то есть тут группировки такие, понял



вот так это понятней воспринять)

Viktor
30.05.2017
15:10:07
Да ?

Sergey
30.05.2017
15:12:05
Интересный способ. Попробую.
Попробовал. Всё так же ORA-08177 при select после второго update'а через oracle_fdw

Google
Guardian
30.05.2017
15:15:32
Если это все из оракла делать теми запросами, которые показывает EXPLAIN — повторяется?

В транзакции с соответствующим isolation level?

Sergey
30.05.2017
15:22:11
Если это все из оракла делать теми запросами, которые показывает EXPLAIN — повторяется?
Если всё делать из oracle, то ни postgres ни тем более oracle_fdw не нужен

Guardian
30.05.2017
15:24:19
Это, наверное, так, но ты же просишь помощи в локализации проблемы. Вопрос имеет очевидную цель — понять, где надо разбираться — в стороне постгреса или в стороне оракла.

Если ты дотрейсил проблему до функции с тремя запросами, которая выполняется в единственной транзакции, очевидно, что не составит большого труда выяснить ответ.

Dmitriy
30.05.2017
16:43:41
Подскажите с сортировкой, не могу решение придумать Есть таблица One Two 1 1 1 2 1 2 2 2 3 2 3 1 4 1 Нужно получить One Two 1 1 1 2 1 2 3 1 3 2 4 1 2 2 Как то так...
Не уверен насчёт производительности и абсолютной верности, но: SELECT one, two FROM something ORDER BY min(two) OVER (PARTITION BY one), one, two;

Если это ещё вообще нужно)

Dmitry
30.05.2017
16:55:29
а какие подводные камни ожидают при 'REVOKE ALL ON SCHEMA public FROM public' ? кто-нибудь на них спотыкался?

Петр
30.05.2017
17:00:10
паблик потеряет привилегии create и usage на схему? не спотыкался, но предполагаю, что подводных камней там и нет

мы обычно у паблик-схемы не отбираем, на то он и паблик)

Viktor
30.05.2017
17:51:53
Если это ещё вообще нужно)
Спасибо большое за идею! Интересное решение, потестирую

Boris
30.05.2017
17:53:53
Всем привет.Нужен совет. Используется между серверами потоковая репликация. Образуется лаг периодически.Причину выявить не получается. По активности видно, что валы накатывается раз в 10 минут и в этот момент есть утилизация по диску на слейве. Вопрос: какими параметрами в postgres можно размазать нагрузку? Т.е чтоб валы накатывались чаще и меньшими порциями, например.

Philip
30.05.2017
18:44:19
Если по задачке актуально, то : with cte as ( select * from ( values (1 ,1) ,(1 , 2) ,(1 , 2) ,(2 , 2) ,(3 , 2) ,(3 ,1) ) t(one ,two) ) select z.one, z.two--, m.min_two from cte z cross join lateral(select two min_two from cte where one = z.one order by two limit 1) m order by m.min_two, z.one, z.two

каким-то зданием при устройстве на работу отдает...

Anatoliy
30.05.2017
19:02:30
А как-то можно узнать, когда в последний раз изменялась таблица, если полей дат в ней нет?

Sergey
30.05.2017
19:21:02
А как-то можно узнать, когда в последний раз изменялась таблица, если полей дат в ней нет?
https://www.postgresql.org/message-id/3f0b79eb0804250725w3349903iedbe11f0e2cd3fe5%40mail.gmail.com здесь рекомендуют смотреть на mtime у файлов, соответствующих таблице. Но их может менять еще и вакуум. Или же новые изменения могут еще находиться в WAL. В любом случае, это не будет время последней транзакции.

Anatoliy
30.05.2017
19:22:41
Я хочу мониторинг навесить на нагиос. Можно смотреть на данные по работе автовакуума в pg_stat_all_tables?

Мне не надо точно, хочу проверять, что таблица менялась менее чем час назад, например.

Или last_autoanalyze, он же не будет менятся, если таблица не меняется?

Sergey
30.05.2017
19:31:35
а много вообще запросов идет к этой таблице?

Google
Sergey
30.05.2017
19:31:37
в сутки

Anatoliy
30.05.2017
19:34:16
нет, я сделал на last_analyze, ибо таблица меняется в одном месте и после заполнения выполняется analyze

раз в 6 минут меняется

SELECT last_analyze > NOW() - '15 minutes'::interval AS updated FROM pg_stat_all_tables WHERE schemaname = 'schema' GROUP BY last_analyze > NOW() - '15 minutes'::interval; У нас есть отдельная схема с агрегированными данными, захотелось проверять, что обновляются.

может кому еще пригодится.

лайфхак

(нагиос настроен на количество строк – если 2 critical, 1 - ok. Если что-то не обновится в схеме, крякнет

Viktor
30.05.2017
20:32:34
каким-то зданием при устройстве на работу отдает...
Не.. реальная задача, формируется отчет и данные так нужно сортировать, обычно достаточно было простых сортировок, но, наверное для собеседования задача была бы не плохой ? интересный вариант, вначале так и думал через кросс джойн реализовать, но до конца не додумал ?

Boris
31.05.2017
08:07:46
Использовать слоты ?
а чем это поможет? разграничить поток?

Dmitry
31.05.2017
08:13:43
Количество валов вырастает в момент лага? Стендбай открыт для чтения? Есть долгие запросы на стендбае?

Boris
31.05.2017
08:17:34
Количество валов вырастает в момент лага? Стендбай открыт для чтения? Есть долгие запросы на стендбае?
Долгих запросов нет. есть много быстрых.. остальное надо понаблюдать

Dmitry
31.05.2017
08:22:08
Лаг может быть по следующим причинам: - высокая активность на мастере, изменения не успевают применяться - долгие запросы на реплике лочат данные - накат останавливается пока блокировку не отпустит, т.к. репликация физическая, должен быть последовательный накат изменений - проблемы с сетью (обычно самый маловероятный случай и самый заметный)

Если честно, то очень похоже на второй вариант. Ловите лаг и смотрите блокировки на слейве

Игорь
31.05.2017
09:39:46
Лаг может быть по следующим причинам: - высокая активность на мастере, изменения не успевают применяться - долгие запросы на реплике лочат данные - накат останавливается пока блокировку не отпустит, т.к. репликация физическая, должен быть последовательный накат изменений - проблемы с сетью (обычно самый маловероятный случай и самый заметный)
Удивительно, но самый маловероятный случай лага я последнее время наблюдаю как раз из-за сети. Оказывается растут задержки в сети из-за перестроения STP. Я это обнаруживаю так: SELECT EXTRACT (seconds from (last_msg_receipt_time - last_msg_send_time)) AS network_lag_seconds FROM pg_stat_wal_receiver. Для этого нужно синхронизированное время на мастере и реплике

Alexander
31.05.2017
09:57:19
это как же сеть должно колбасить

Sergey
31.05.2017
10:14:32
Странное исполнение MVCC и serializable level

Google
Dmitriy
31.05.2017
10:39:00
Вместо stp включайте rstp. И про edge-port не забывайте в сторону клиентов, иначе любой флап будет приюводить к перестроению

Alex
31.05.2017
11:04:17
Привет, группа! Тут появился вопрос, как мне из jsonb формата { "id1": { "a": 1, "b":2}, "id2":{"a":3, "b":4}} перевести к формату: {"id1":1, "id2":3} ? Как я понял нельзя пробегался по ключам в jsonb, получается нужно презентацию функции хранимки делать?

Admin
ERROR: S client not available

Igor
31.05.2017
11:05:06
почему нельзя пробегаться по ключам?

Alex
31.05.2017
11:07:23
В каждой строке таблицы такой объект и не получается построить селект который бы пробегал по ключам.

Alex
31.05.2017
11:07:43
не очень понятно что хочешь сделать

Alex
31.05.2017
11:10:27
Из одного jsonb другой jsonb, с сохранением ключей, но изменить велью.

И так для каждой строки таблицы...

Ascandar
31.05.2017
15:30:10
а кто с постгрес астрой работал?

когда создаешь юзера - проблема при входе через psql -U dbuser

ругается на мандат

Anton
31.05.2017
15:30:42
а кто с постгрес астрой работал?
какая астра? и какой постгрес?

1,5 9,4

Ascandar
31.05.2017
15:31:14
Astra Linux Смоленск 1.5, постгри с поставки 9.4

Anton
31.05.2017
15:31:18
usermod -a -G shadow postgres setfacl -d -m u:postgres:r /etc/parsec/macdb setfacl -R -m u:postgres:r /etc/parsec/macdb setfacl -m u:postgres:rx /etc/parsec/macdb

Ascandar
31.05.2017
15:31:38
эт да, а если хочу другого юзера?

созда dbuser, создавать юзера на ОС?

Anton
31.05.2017
15:31:57
это для постгреса, чтобы он мог читать метки

usermac -c 0:0 пользователь

Ascandar
31.05.2017
15:32:18
постгрес может норм входит, а вот юзер нет

Google
Ascandar
31.05.2017
15:33:00
хм, я попробовал сделать вот это pdpl-user -z dbuser

и у меня зашло, хоть не совсем понял что там произошло

usermac -c 0:0 пользователь
это не тоже самое что pdpl-user -z user ?

Anton
31.05.2017
15:36:06
Я не пользовался pdpl-user. В ос добавлял обычно пользователя и на БД через SQL

Петр
31.05.2017
15:37:32
в Смоленске пересоздавать партицию не пробовали? у меня почему то при пересоздании смещался первый сектор

Anton
31.05.2017
15:38:47
нет. Живёт в виртуалке для тестирования php и БД части

Петр
31.05.2017
15:39:55
попробуйте расширить партицию (через удаление/создание партиции)

Артур
01.06.2017
06:44:37
Всем привет. Смотрю я на большую кашу из 1292 процедур в public (куда примешаны не только postgis, но и частные процедуры) и в очередной раз думаю о том, чтобы частные процедуры вынести в другую схему. Кто как к этому относится?

Петр
01.06.2017
06:48:33
выносите конечно а так, я мечтаю о пакетах...

Артур
01.06.2017
06:48:38
Мои аргументы "за" и "против" —- за) Легче видеть и навигироваться в (datatable) что написано для базы прротив) Я понимаю что теперь не получится в рамках схемы писать: "fserchaddress()", придется писать типа address.fsearch();

Alex
01.06.2017
06:49:26
Хорошая практика в паблик ничего не хранить

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