Size: a a a

pgsql – PostgreSQL

2020 August 20

ВТ

Виктор Ткаченко... in pgsql – PostgreSQL
Konstantin Knizhnik
Была у нас в пгпро попытка реализовать квоты через cgroup. Прототипчик работал, но до включения в боевую версию насколько я помню дело не дошло.
А пока в ваниле вы максимум можете пытаться ограничить work_mem -чтобы бэкенд не сожрал слишком много памяти. Но даже work_mem - это не жёсткая квота, а хинт оптимизатору, за пределы которой он легко может выйти, особенно если ошибётся со статистикой.
Вроде при превышениях work_mem данные просто начнут свопиться на диск , если не ошибаюсь
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
не всегда
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
hashjoin сейчас действительно вроде научили свапится на диск (хотя хэши вообще к этому очень плохо приспособлены). Но есть куча других мест, которые могут сожрать произваольное количество памяти. Например та же кэш каталога. Если у вас в базе несколько тысяч таблиц,  то этот кэш может получиться весьма не маленьким.  А умножать надо на число бэкендов.
источник

ВТ

Виктор Ткаченко... in pgsql – PostgreSQL
Konstantin Knizhnik
hashjoin сейчас действительно вроде научили свапится на диск (хотя хэши вообще к этому очень плохо приспособлены). Но есть куча других мест, которые могут сожрать произваольное количество памяти. Например та же кэш каталога. Если у вас в базе несколько тысяч таблиц,  то этот кэш может получиться весьма не маленьким.  А умножать надо на число бэкендов.
Благодарю на информацию
источник

SB

S B in pgsql – PostgreSQL
Виктор Ткаченко
Вроде при превышениях work_mem данные просто начнут свопиться на диск , если не ошибаюсь
есть ещё просто размер поля, например текстового, туда можно около гигабайта запихать и на размер поля work_mem не влияет
источник

ВТ

Виктор Ткаченко... in pgsql – PostgreSQL
Да это я понимаю. Что в фазе поднятия данных, там может оказаться, что угодно, хоть "порно в HD".
Основная суть введения ограничений зонированная деградация  производительности
источник

ВТ

Виктор Ткаченко... in pgsql – PostgreSQL
И по итогу можно приложить IO диска в полку...
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
обычно диск"кладёт" чекпоинтер, когда начинает флэшить все изменения на диск. Поэтому многие не рекомендуют делать слишком  большой шаред буфер, даже если память позволяет.
источник

DE

Dmitry Erykin in pgsql – PostgreSQL
Konstantin Knizhnik
обычно диск"кладёт" чекпоинтер, когда начинает флэшить все изменения на диск. Поэтому многие не рекомендуют делать слишком  большой шаред буфер, даже если память позволяет.
обычная рекомендация - 25% от ОЗУ
источник

SB

S B in pgsql – PostgreSQL
Dmitry Erykin
обычная рекомендация - 25% от ОЗУ
на сервере с 400гб это будет 100 гб :-)
источник

KK

Konstantin K in pgsql – PostgreSQL
привет! существует ли красивый способ проверки записи типа record на существование?
источник

KK

Konstantin K in pgsql – PostgreSQL
is not null не работает, он будет true только если все поля записи будут не null
источник

A

Alex in pgsql – PostgreSQL
Konstantin K
привет! существует ли красивый способ проверки записи типа record на существование?
SELECT EXISTS()
источник

KK

Konstantin K in pgsql – PostgreSQL
raise notice '%', exists(_fact_rec)
источник

KK

Konstantin K in pgsql – PostgreSQL
неверный синтаксис
источник

KK

Konstantin K in pgsql – PostgreSQL
_fact_rec.id is not null подошло
источник

A

Andrey in pgsql – PostgreSQL
PG 12, подскажите опять с доступами, надо дать пользователю доступ к схеме olap, делаю так
\c db;
create schema olap;
CREATE USER olap WITH password 'pass';
GRANT CONNECT ON DATABASE db TO olap;
GRANT USAGE ON SCHEMA olap TO olap;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA olap TO olap;
GRANT SELECT ON ALL TABLES IN SCHEMA olap TO olap;
ALTER DEFAULT PRIVILEGES IN SCHEMA olap GRANT SELECT ON SEQUENCES TO olap;
ALTER DEFAULT PRIVILEGES IN SCHEMA olap GRANT SELECT ON TABLES TO olap;


пробую подключиться под пользователем olap и у него есть доступ на создание таблиц в базе db и схеме public, что я делаю не так?
источник

DM

Dmitriy Momotyuk in pgsql – PostgreSQL
Andrey
PG 12, подскажите опять с доступами, надо дать пользователю доступ к схеме olap, делаю так
\c db;
create schema olap;
CREATE USER olap WITH password 'pass';
GRANT CONNECT ON DATABASE db TO olap;
GRANT USAGE ON SCHEMA olap TO olap;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA olap TO olap;
GRANT SELECT ON ALL TABLES IN SCHEMA olap TO olap;
ALTER DEFAULT PRIVILEGES IN SCHEMA olap GRANT SELECT ON SEQUENCES TO olap;
ALTER DEFAULT PRIVILEGES IN SCHEMA olap GRANT SELECT ON TABLES TO olap;


пробую подключиться под пользователем olap и у него есть доступ на создание таблиц в базе db и схеме public, что я делаю не так?
а прямой select * from olap.table работает?
источник

A

Andrey in pgsql – PostgreSQL
Dmitriy Momotyuk
а прямой select * from olap.table работает?
создал для теста таблицу
\dt
          List of relations
Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
olap   | checktable | table | postgres
(1 row)


проверил от пользователя olap
select * from olap.checktable;
id
----
(0 rows)
источник

DM

Dmitriy Momotyuk in pgsql – PostgreSQL
значит права есть
источник