Size: a a a

pgsql – PostgreSQL

2020 May 26

ДН

Денис Николаев... in pgsql – PostgreSQL
Доброе утро! Подскажите пожалуйста, есть вот такой запрос

SELECT
 orders.service_center_id,
 orders.month,
 orders.year,
 orders.model_name
FROM (
 SELECT
   orders."ServiceCenterId" AS service_center_id,
   date_part('month', orders."Created") AS month,
   date_part('year', orders."Created") AS year,
   models."Name" as model_name
 FROM "Orders" AS orders
 JOIN "Models" AS models ON (orders."ModelId" = models."Id")
 GROUP BY models."Id", orders."Id"
) AS orders


мне нужно его сгруппировать по service_center_id, month, year по получить топ 10 model_name в каждой группе
догадываюсь, что нужно воткнуть dense_rank с сортировкой по каунту моделей, а потом воспользоваться string_agg, но куда это засунуть?
источник

2_

2flower _ in pgsql – PostgreSQL
Денис Николаев
Доброе утро! Подскажите пожалуйста, есть вот такой запрос

SELECT
 orders.service_center_id,
 orders.month,
 orders.year,
 orders.model_name
FROM (
 SELECT
   orders."ServiceCenterId" AS service_center_id,
   date_part('month', orders."Created") AS month,
   date_part('year', orders."Created") AS year,
   models."Name" as model_name
 FROM "Orders" AS orders
 JOIN "Models" AS models ON (orders."ModelId" = models."Id")
 GROUP BY models."Id", orders."Id"
) AS orders


мне нужно его сгруппировать по service_center_id, month, year по получить топ 10 model_name в каждой группе
догадываюсь, что нужно воткнуть dense_rank с сортировкой по каунту моделей, а потом воспользоваться string_agg, но куда это засунуть?
в подзапрос добавить поле с ROW_NUMBER(....) as rn и в верхнем запросе сделать фильтр where rn<11 или использавать where lag(...,10) is null но это слишком уже.
источник

SZ

Sergey Zhemoitel in pgsql – PostgreSQL
Добрый день, коллеги. Никто не встречался с такой проблемой? Перенесли базу, простым pg_backup с восстановлением.
Сейчас приложение на ruby стало постоянно ругаться такой ошибкой:
"PG::Error: invalid encoding name: unicode"
При этом везде где можно и нужно проставлены en_us.utf8

Приложение не менялось,базы тоже, кроме переноса.
источник

SZ

Sergey Zhemoitel in pgsql – PostgreSQL
как водится, сам спросил, сам решил :)..
источник

qq

qq qq in pgsql – PostgreSQL
всем привет, как можно функции на вход подать array и раскрыть его в  RETURN QUERY
 execute'SELECT UNNEST('''||_array ||''')';
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Господа, подскажите какой-нибудь годный материал про устройство транзакций в бд
Именно как они реализованы на уровне ПО базы, какими архитектурными решениями обеспечивается ACID
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Возможно про это в универах рассказывают, но у меня нет CS образования
источник

ВТ

Виктор Ткаченко... in pgsql – PostgreSQL
Ilya Kaznacheev
Господа, подскажите какой-нибудь годный материал про устройство транзакций в бд
Именно как они реализованы на уровне ПО базы, какими архитектурными решениями обеспечивается ACID
https://habr.com/ru/users/erogov/posts/
У Егора Рогова есть достаточно внушительный багаж статей, посвященных ACID и модели MVCC (и не только).
Стартануть можно отсюда
https://habr.com/ru/company/postgrespro/blog/442804/
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Виктор Ткаченко
https://habr.com/ru/users/erogov/posts/
У Егора Рогова есть достаточно внушительный багаж статей, посвященных ACID и модели MVCC (и не только).
Стартануть можно отсюда
https://habr.com/ru/company/postgrespro/blog/442804/
Большое спасибо!
источник

VT

Valery Tarasenkov in pgsql – PostgreSQL
Парни, привет! подскажите пожалуйста, можно как то проверить, использует ли postgres huge pages ? (postgresql.conf -> huge_pages = try)
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Valery Tarasenkov
Парни, привет! подскажите пожалуйста, можно как то проверить, использует ли postgres huge pages ? (postgresql.conf -> huge_pages = try)
сделайте on вместо try и если запуститься успешно, значит использует. Ну и посмотрите:
grep ^HugePages /proc/meminfo
источник

VT

Valery Tarasenkov in pgsql – PostgreSQL
Сергей Голод
сделайте on вместо try и если запуститься успешно, значит использует. Ну и посмотрите:
grep ^HugePages /proc/meminfo
спасибо, да, уже нашел такую рекомендацию. С try такие значения
источник

VT

Valery Tarasenkov in pgsql – PostgreSQL
HugePages_Rsvd:        0
HugePages_Surp:        0
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Valery Tarasenkov
HugePages_Rsvd:        0
HugePages_Surp:        0
не используются
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
Подскажите пожалуйста, чем грозят базе ssd без power fail protection? Пока слава богу не сталкивался с db corruption, как такие проблемы чинятся и насколько это хуже "потеряем последние х минут транзакций" ?
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Viktor Grigorev
Подскажите пожалуйста, чем грозят базе ssd без power fail protection? Пока слава богу не сталкивался с db corruption, как такие проблемы чинятся и насколько это хуже "потеряем последние х минут транзакций" ?
субд "ничего не знает" про тип диска, она(субд) взаимодействует с ОС и полагает что сама ОС выполнит дисковые операции корректным образом. Использование powerfail protection может быть важным для файловых систем. Рассматривайте ssd без батарейки как обычный жесткий диск, просто очень быстрый.
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
я так понимаю, какие-то страницы на диске неправильные и понять какие можно только если включена data_checksums - в этом случае можно хотябы локализовать плохие данные и прикинуть как давно проблема случилась. Если data_checksums отключены, то определить наличие проблемы можно только по неконсистентности данных
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Viktor Grigorev
я так понимаю, какие-то страницы на диске неправильные и понять какие можно только если включена data_checksums - в этом случае можно хотябы локализовать плохие данные и прикинуть как давно проблема случилась. Если data_checksums отключены, то определить наличие проблемы можно только по неконсистентности данных
наличие "батарейки" не решит проблемы с чек-суммами. Они (чексуммы) могут "порушиться" и на ссд дисках, и на обычных хдд
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Viktor Grigorev
я так понимаю, какие-то страницы на диске неправильные и понять какие можно только если включена data_checksums - в этом случае можно хотябы локализовать плохие данные и прикинуть как давно проблема случилась. Если data_checksums отключены, то определить наличие проблемы можно только по неконсистентности данных
или у вас как-раз произошёл случай нарушения чексумм и вы подозреваете что это связано с тем что ссд диск без батарейки?
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
> Рассматривайте ssd без батарейки как обычный жесткий диск, просто очень быстрый.
я не очень понимаю, что это значит. hdd со все временем может размагничиваться типа?
источник